Laravel Passport Authentication через cookie - срок действия истекает при выходе из системы?

В своем проекте я интегрирую Laravel Passport, чтобы использовать свой API в моем приложении, как описано здесь.

У меня вопрос об истечении срока действия laravel_token cookie. Как видно здесь, файл cookie отправлен Моя заявка проверяется, чтобы убедиться, что срок ее действия не истек. Этот срок, кажется, определяется временем жизни моего сеанса - см. здесь .

Похоже, это означает, что файл cookie laravel_token останется действительным даже после того, как пользователь моего приложения выйдет из системы, пока время сеанса не истекло (действительно, похоже, что если я удалю все сеансы на сервере и выйти из системы, мой пользователь, запросы API с использованием файла cookie все равно выполняются).

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


person Radical    schedule 04.01.2018    source источник
comment
Это не отвечает на ваш вопрос, но Laravel по умолчанию использует безопасные файлы cookie HttpOnly и требует дополнительного токена CSRF при использовании описанного механизма аутентификации. В конце концов, такой подход снижает вероятность успешного взлома сеанса, и я считаю это безопасным.   -  person Jonathan    schedule 10.01.2019
comment
@Radical Эй, вы нашли способ истечь срок действия токена при выходе из системы?   -  person Wonka    schedule 11.01.2019


Ответы (1)


Попробуйте этот способ, в этом случае refresh_tokens отключен, а файлы cookie также потеряны.

    $accessToken = Auth::user()->token();
    DB::table('oauth_refresh_tokens')
        ->where('access_token_id', $accessToken->id)
        ->update(['revoked' => true]);
    $accessToken->revoke();

    \Cookie::queue(\Cookie::forget(Passport::cookie()));
person Vajiheh habibi    schedule 25.01.2019