Merge pull request #6229 from btme0011/fix-6212-Issue-With-Linkedin-OAuth
This commit is contained in:
commit
c273e3d8e1
1 changed files with 17 additions and 15 deletions
|
@ -20,8 +20,9 @@ class Linkedin extends OAuth2
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected array $scopes = [
|
protected array $scopes = [
|
||||||
'r_liteprofile',
|
'openid',
|
||||||
'r_emailaddress',
|
'profile',
|
||||||
|
'email'
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -117,8 +118,7 @@ class Linkedin extends OAuth2
|
||||||
public function getUserID(string $accessToken): string
|
public function getUserID(string $accessToken): string
|
||||||
{
|
{
|
||||||
$user = $this->getUser($accessToken);
|
$user = $this->getUser($accessToken);
|
||||||
|
return $user['sub'] ?? '';
|
||||||
return $user['id'] ?? '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -128,9 +128,8 @@ class Linkedin extends OAuth2
|
||||||
*/
|
*/
|
||||||
public function getUserEmail(string $accessToken): string
|
public function getUserEmail(string $accessToken): string
|
||||||
{
|
{
|
||||||
$email = \json_decode($this->request('GET', 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))', ['Authorization: Bearer ' . \urlencode($accessToken)]), true);
|
$user = $this->getUser($accessToken);
|
||||||
|
return $user['email'] ?? '';
|
||||||
return $email['elements'][0]['handle~']['emailAddress'] ?? '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -144,9 +143,8 @@ class Linkedin extends OAuth2
|
||||||
*/
|
*/
|
||||||
public function isEmailVerified(string $accessToken): bool
|
public function isEmailVerified(string $accessToken): bool
|
||||||
{
|
{
|
||||||
$email = $this->getUserEmail($accessToken);
|
$user = $this->getUser($accessToken);
|
||||||
|
return $user['email_verified'] ?? false;
|
||||||
return !empty($email);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -159,12 +157,16 @@ class Linkedin extends OAuth2
|
||||||
$user = $this->getUser($accessToken);
|
$user = $this->getUser($accessToken);
|
||||||
$name = '';
|
$name = '';
|
||||||
|
|
||||||
if (isset($user['localizedFirstName'])) {
|
if (isset($user['name'])) {
|
||||||
$name = $user['localizedFirstName'];
|
return $user['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($user['localizedLastName'])) {
|
if (isset($user['given_name'])) {
|
||||||
$name = (empty($name)) ? $user['localizedLastName'] : $name . ' ' . $user['localizedLastName'];
|
$name = $user['given_name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($user['family_name'])) {
|
||||||
|
$name = (empty($name)) ? $user['family_name'] : $name . ' ' . $user['family_name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $name;
|
return $name;
|
||||||
|
@ -178,7 +180,7 @@ class Linkedin extends OAuth2
|
||||||
protected function getUser(string $accessToken)
|
protected function getUser(string $accessToken)
|
||||||
{
|
{
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->user = \json_decode($this->request('GET', 'https://api.linkedin.com/v2/me', ['Authorization: Bearer ' . \urlencode($accessToken)]), true);
|
$this->user = \json_decode($this->request('GET', 'https://api.linkedin.com/v2/userinfo', ['Authorization: Bearer ' . \urlencode($accessToken)]), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->user;
|
return $this->user;
|
||||||
|
|
Loading…
Reference in a new issue