Fix race condition
This commit is contained in:
parent
a7f81bd628
commit
837cebcdda
1 changed files with 47 additions and 40 deletions
|
@ -76,6 +76,7 @@ $getUserGitHub = function (Document $user, Document $project, Database $dbForPro
|
||||||
|
|
||||||
$oauth2 = new $className($appId, $appSecret, '', [], []);
|
$oauth2 = new $className($appId, $appSecret, '', [], []);
|
||||||
|
|
||||||
|
try {
|
||||||
$oauth2->refreshTokens($refreshToken);
|
$oauth2->refreshTokens($refreshToken);
|
||||||
|
|
||||||
$accessToken = $oauth2->getAccessToken('');
|
$accessToken = $oauth2->getAccessToken('');
|
||||||
|
@ -89,6 +90,12 @@ $getUserGitHub = function (Document $user, Document $project, Database $dbForPro
|
||||||
Authorization::skip(fn () => $dbForProject->updateDocument('sessions', $session->getId(), $session));
|
Authorization::skip(fn () => $dbForProject->updateDocument('sessions', $session->getId(), $session));
|
||||||
|
|
||||||
$dbForProject->deleteCachedDocument('users', $user->getId());
|
$dbForProject->deleteCachedDocument('users', $user->getId());
|
||||||
|
} catch (Throwable $err) {
|
||||||
|
// Race contition
|
||||||
|
$sessions = $user->getAttribute('sessions', []);
|
||||||
|
$session = $sessions[0] ?? new Document();
|
||||||
|
$accessToken = $session->getAttribute('providerAccessToken');
|
||||||
|
}
|
||||||
|
|
||||||
$githubUser = $oauth2->getUserSlug($accessToken);
|
$githubUser = $oauth2->getUserSlug($accessToken);
|
||||||
$githubId = $oauth2->getUserID($accessToken);
|
$githubId = $oauth2->getUserID($accessToken);
|
||||||
|
@ -474,9 +481,9 @@ App::get('/v1/cards/cloud')
|
||||||
->desc('Get Front Of Cloud Card')
|
->desc('Get Front Of Cloud Card')
|
||||||
->groups(['api', 'avatars'])
|
->groups(['api', 'avatars'])
|
||||||
->label('scope', 'avatars.read')
|
->label('scope', 'avatars.read')
|
||||||
->label('cache', true)
|
// ->label('cache', true)
|
||||||
->label('cache.resourceType', 'cards/cloud')
|
// ->label('cache.resourceType', 'cards/cloud')
|
||||||
->label('cache.resource', 'card/{request.userId}')
|
// ->label('cache.resource', 'card/{request.userId}')
|
||||||
->label('docs', false)
|
->label('docs', false)
|
||||||
->label('origin', '*')
|
->label('origin', '*')
|
||||||
->param('userId', '', new UID(), 'User ID.', true)
|
->param('userId', '', new UID(), 'User ID.', true)
|
||||||
|
@ -649,9 +656,9 @@ App::get('/v1/cards/cloud-back')
|
||||||
->desc('Get Back Of Cloud Card')
|
->desc('Get Back Of Cloud Card')
|
||||||
->groups(['api', 'avatars'])
|
->groups(['api', 'avatars'])
|
||||||
->label('scope', 'avatars.read')
|
->label('scope', 'avatars.read')
|
||||||
->label('cache', true)
|
// ->label('cache', true)
|
||||||
->label('cache.resourceType', 'cards/cloud-back')
|
// ->label('cache.resourceType', 'cards/cloud-back')
|
||||||
->label('cache.resource', 'card/{request.userId}')
|
// ->label('cache.resource', 'card/{request.userId}')
|
||||||
->label('docs', false)
|
->label('docs', false)
|
||||||
->label('origin', '*')
|
->label('origin', '*')
|
||||||
->param('userId', '', new UID(), 'User ID.', true)
|
->param('userId', '', new UID(), 'User ID.', true)
|
||||||
|
|
Loading…
Reference in a new issue