mirror of
https://github.com/appwrite/appwrite
synced 2026-05-06 06:48:22 +00:00
Merge pull request #10460 from appwrite/fix-oauth-identities-check
Fix: oauth identity check
This commit is contained in:
commit
cbd1d75aa4
1 changed files with 10 additions and 10 deletions
|
|
@ -1535,22 +1535,22 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
|
|||
*/
|
||||
$isVerified = $oauth2->isEmailVerified($accessToken);
|
||||
|
||||
$userWithEmail = $dbForProject->findOne('users', [
|
||||
Query::equal('email', [$email]),
|
||||
$identity = $dbForProject->findOne('identities', [
|
||||
Query::equal('provider', [$provider]),
|
||||
Query::equal('providerUid', [$oauth2ID]),
|
||||
]);
|
||||
if (!$userWithEmail->isEmpty()) {
|
||||
$user->setAttributes($userWithEmail->getArrayCopy());
|
||||
|
||||
if (!$identity->isEmpty()) {
|
||||
$user = $dbForProject->getDocument('users', $identity->getAttribute('userId'));
|
||||
}
|
||||
|
||||
// If user is not found, check if there is an identity with the same provider user ID
|
||||
if ($user === false || $user->isEmpty()) {
|
||||
$identity = $dbForProject->findOne('identities', [
|
||||
Query::equal('provider', [$provider]),
|
||||
Query::equal('providerUid', [$oauth2ID]),
|
||||
$userWithEmail = $dbForProject->findOne('users', [
|
||||
Query::equal('email', [$email]),
|
||||
]);
|
||||
|
||||
if (!$identity->isEmpty()) {
|
||||
$user = $dbForProject->getDocument('users', $identity->getAttribute('userId'));
|
||||
if (!$userWithEmail->isEmpty()) {
|
||||
$user->setAttributes($userWithEmail->getArrayCopy());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue