Laravel Passport refresh_token с той же областью действия - PullRequest
0 голосов
/ 20 июня 2020

У меня проблема, и я надеюсь, что вы можете помочь:)

Я использую Laravel Passport для обработки аутентификации для моего веб-приложения. Я могу без проблем сгенерировать токены доступа и обновленные sh токены.

Проблема возникает, когда я пытаюсь обновить sh свой токен. Я написал код в соответствии с документацией Laravel:

public function refresh_token(Request $request){
    $refresh_token = $request->cookie('refresh_token');

    $http = new \GuzzleHttp\Client([
        'base_uri' => env('OAUTH_PWD_GRANT_BASE_URL'),
        'http_errors' => false
    ]);
    
    
    $response = $http->post('/oauth/token', [
        'form_params' => [
            'grant_type' => 'refresh_token',
            'refresh_token' => $refresh_token,
            'client_id' => env('OAUTH_PWD_GRANT_CLIENT_ID'),
            'client_secret' => env('OAUTH_PWD_GRANT_CLIENT_SECRET'),
            'scope' => '',
        ],
    ]);
    return $this->login_helper(json_decode((string) $response->getBody(), true));
}

Вот моя проблема: я хочу, чтобы мой новый токен доступа имел ту же область действия, что и предоставленный refresh_token (или, точнее, как access_token, связанный с refresh_token).

Как я могу это сделать?

Я попытался просмотреть базу данных, чтобы найти свой refresh_token, и получить связанный access_token, но неясно, как получить доступ к refresh_token (refresh_token, который я установил в своих файлах cookie, не отображается в базе данных - я не понимаю, что за этим стоит).

Большое спасибо за помощь!

1 Ответ

0 голосов
/ 20 июня 2020

Хорошо, после тестирования я понял, что когда вы помещаете 'scope' => '' в запрос на обновление sh токена, вы получаете ту же область действия. : -)

Я должен был проверить раньше (я думал, что он возвращает пустую область видимости - хотя это странная реализация - очень полезная, но странная) ^^

...