Токен обновления аннулируется с помощью токена доступа в Laravel Passport

Я использую laravel / паспорт password_grant для аутентификации. Весь процесс генерации access_token и refresh_token работает нормально. Теперь я пытаюсь использовать события токенов паспорта laravel для отзыва старых токенов.

Я сослался на этот пост для процесса - https://laracasts.com/discuss/channels/laravel/laravel-passport-revoke-and-prune-event-listener-is-not-doing-anything

Это работает ... Но при обновлении access token с использованием ранее предоставленного refresh token создается новый access token, а также создается новый refresh token. В конце концов, при отзыве старого access token, старый, еще не истекший refresh token также будет отменен.

Но я думаю, что refresh token нужно отозвать только по истечении срока его действия.

А также, когда я удаляю EventListeners из массива App\Providers\EventServiceProvider $listen , механизм отзыва по-прежнему работает.

Это как если бы даже вытащив вилку, лампочка все еще горела.

Как решить эту проблему? Или я где-то ошибаюсь с концепцией?


person besrabasant    schedule 10.11.2017    source источник
comment
Насколько я понимаю, токены обновления связаны с токеном доступа, токен обновления проверяется на токен доступа, если у вас нет действительного токена доступа, связанного с токеном обновления, как будет проверяться токен обновления по нему?   -  person madalinivascu    schedule 10.11.2017
comment
Да, как события для отзыва токенов обновления все еще срабатывают даже после того, как я удалил прослушиватели событий? До регистрации слушателей событий все работало так, как я хотел. @madalinivascu   -  person besrabasant    schedule 10.11.2017
comment
Вы ставили события в очередь?   -  person madalinivascu    schedule 10.11.2017
comment
Нет. @Madalinivascu   -  person besrabasant    schedule 10.11.2017
comment
я не знаком с событиями laravel, попробуйте сделать дамп-загрузку композитора   -  person madalinivascu    schedule 10.11.2017
comment
хорошо ... попробую и дам тебе знать   -  person besrabasant    schedule 10.11.2017
comment
Позвольте нам продолжить это обсуждение в чате.   -  person besrabasant    schedule 10.11.2017


Ответы (1)


Но при обновлении токена доступа с использованием ранее предоставленного токена обновления создается новый токен доступа, а также создается новый токен обновления.

Это в основном то, что заставляет токены обновления предотвращать атаки MITM (в некоторой степени). Если кто-то перехватит ваше сообщение и найдет ваш токен доступа, он может выдавать себя за вас до тех пор, пока он жив. Но если они перехватят ваш запрос на обновление ваших токенов, только один из вас (пользователь и злоумышленник) сможет использовать его, потому что он отозван после использования. Если вы сначала воспользуетесь им, он станет для них бесполезен. Если они сначала воспользуются им, вы выйдете из системы, потому что ваши старые токены будут отозваны. Если они могут перехватывать все ваши запросы и продолжать находить ваши новые токены доступа, вам необходимо пересмотреть настройки безопасности.

Из раздела RFC6749 1.5. Обновить токен в разделе Рисунок 2: Обновление просроченного токена доступа:

(H) Сервер авторизации аутентифицирует клиента и проверяет токен обновления, и, если он действителен, выдает новый токен доступа (и, необязательно, новый токен обновления).

person iSWORD    schedule 03.01.2018