feat: added check for GitHub OAuth
This commit is contained in:
parent
d0fa65dee0
commit
ac4bca5887
1 changed files with 20 additions and 5 deletions
|
@ -126,12 +126,10 @@ class Github extends OAuth2
|
||||||
*/
|
*/
|
||||||
public function getUserEmail(string $accessToken):string
|
public function getUserEmail(string $accessToken):string
|
||||||
{
|
{
|
||||||
$emails = \json_decode($this->request('GET', 'https://api.github.com/user/emails', ['Authorization: token '.\urlencode($accessToken)]), true);
|
$user = $this->getUser($accessToken);
|
||||||
|
|
||||||
foreach ($emails as $email) {
|
if (isset($user['email'])) {
|
||||||
if ($email['primary'] && $email['verified']) {
|
return $user['email'];
|
||||||
return $email['email'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
|
@ -146,6 +144,12 @@ class Github extends OAuth2
|
||||||
*/
|
*/
|
||||||
public function isEmailVerified(string $accessToken): bool
|
public function isEmailVerified(string $accessToken): bool
|
||||||
{
|
{
|
||||||
|
$user = $this->getUser($accessToken);
|
||||||
|
|
||||||
|
if (isset($user['verified']) && $user['verified'] !== null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,6 +178,17 @@ class Github extends OAuth2
|
||||||
{
|
{
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->user = \json_decode($this->request('GET', 'https://api.github.com/user', ['Authorization: token '.\urlencode($accessToken)]), true);
|
$this->user = \json_decode($this->request('GET', 'https://api.github.com/user', ['Authorization: token '.\urlencode($accessToken)]), true);
|
||||||
|
|
||||||
|
$emails = $this->request('GET', 'https://api.github.com/user/emails', ['Authorization: token '.\urlencode($accessToken)]);
|
||||||
|
|
||||||
|
$emails = \json_decode($emails, true);
|
||||||
|
foreach ($emails as $email) {
|
||||||
|
if (isset($email['verified']) && $email['verified'] === true) {
|
||||||
|
$this->user['email'] = $email['email'];
|
||||||
|
$this->user['verified'] = $email['verified'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->user;
|
return $this->user;
|
||||||
|
|
Loading…
Reference in a new issue