1
0
Fork 0
mirror of synced 2024-09-30 09:18:14 +13:00

feat: added check for GitHub OAuth

This commit is contained in:
Christy Jacob 2022-05-06 00:30:16 +04:00
parent d0fa65dee0
commit ac4bca5887

View file

@ -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;