Viewing file: GitlabProvider.php (1.73 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Laravel\Socialite\Two;
use GuzzleHttp\RequestOptions;
class GitlabProvider extends AbstractProvider implements ProviderInterface { /** * The scopes being requested. * * @var array */ protected $scopes = ['read_user'];
/** * The separating character for the requested scopes. * * @var string */ protected $scopeSeparator = ' ';
/** * The Gitlab instance host. * * @var string */ protected $host = 'https://gitlab.com';
/** * Set the Gitlab instance host. * * @param string|null $host * @return $this */ public function setHost($host) { if (! empty($host)) { $this->host = rtrim($host, '/'); }
return $this; }
/** * {@inheritdoc} */ protected function getAuthUrl($state) { return $this->buildAuthUrlFromBase($this->host.'/oauth/authorize', $state); }
/** * {@inheritdoc} */ protected function getTokenUrl() { return $this->host.'/oauth/token'; }
/** * {@inheritdoc} */ protected function getUserByToken($token) { $response = $this->getHttpClient()->get($this->host.'/api/v3/user', [ RequestOptions::QUERY => ['access_token' => $token], ]);
return json_decode($response->getBody(), true); }
/** * {@inheritdoc} */ protected function mapUserToObject(array $user) { return (new User)->setRaw($user)->map([ 'id' => $user['id'], 'nickname' => $user['username'], 'name' => $user['name'], 'email' => $user['email'], 'avatar' => $user['avatar_url'], ]); } }
|