public function OpenIDConnectClientBase::retrieveUserInfo in OpenID Connect / OAuth client 2.x
Same name and namespace in other branches
- 8 src/Plugin/OpenIDConnectClientBase.php \Drupal\openid_connect\Plugin\OpenIDConnectClientBase::retrieveUserInfo()
Retrieves user info: additional user profile data.
Parameters
string $access_token: Access token.
Return value
array|null Additional user profile information or NULL on failure.
Overrides OpenIDConnectClientInterface::retrieveUserInfo
2 calls to OpenIDConnectClientBase::retrieveUserInfo()
- OpenIDConnectGoogleClient::retrieveUserInfo in src/
Plugin/ OpenIDConnectClient/ OpenIDConnectGoogleClient.php - Retrieves user info: additional user profile data.
- OpenIDConnectLinkedinClient::retrieveUserInfo in src/
Plugin/ OpenIDConnectClient/ OpenIDConnectLinkedinClient.php - Retrieves user info: additional user profile data.
4 methods override OpenIDConnectClientBase::retrieveUserInfo()
- OpenIDConnectFacebookClient::retrieveUserInfo in src/
Plugin/ OpenIDConnectClient/ OpenIDConnectFacebookClient.php - Retrieves user info: additional user profile data.
- OpenIDConnectGithubClient::retrieveUserInfo in src/
Plugin/ OpenIDConnectClient/ OpenIDConnectGithubClient.php - Retrieves user info: additional user profile data.
- OpenIDConnectGoogleClient::retrieveUserInfo in src/
Plugin/ OpenIDConnectClient/ OpenIDConnectGoogleClient.php - Retrieves user info: additional user profile data.
- OpenIDConnectLinkedinClient::retrieveUserInfo in src/
Plugin/ OpenIDConnectClient/ OpenIDConnectLinkedinClient.php - Retrieves user info: additional user profile data.
File
- src/
Plugin/ OpenIDConnectClientBase.php, line 383
Class
- OpenIDConnectClientBase
- Base class for OpenID Connect client plugins.
Namespace
Drupal\openid_connect\PluginCode
public function retrieveUserInfo(string $access_token) : ?array {
$request_options = [
'headers' => [
'Authorization' => 'Bearer ' . $access_token,
'Accept' => 'application/json',
],
];
$endpoints = $this
->getEndpoints();
try {
$response = $this->httpClient
->get($endpoints['userinfo'], $request_options);
$userinfo = Json::decode((string) $response
->getBody());
$this->loggerFactory
->get('openid_connect_' . $this->pluginId)
->debug('Response from userinfo endpoint: @userinfo', [
'@userinfo' => print_r($userinfo, TRUE),
]);
return is_array($userinfo) ? $userinfo : NULL;
} catch (\Exception $e) {
$error = $e
->getMessage();
if ($e instanceof RequestException && $e
->hasResponse()) {
$response_body = $e
->getResponse()
->getBody()
->getContents();
$error .= ' Response: ' . $response_body;
}
$this->loggerFactory
->get('openid_connect_' . $this->pluginId)
->error('Could not retrieve user profile information. Details: @error_message', [
'@error_message' => $error,
]);
}
return NULL;
}