Laravel passport продлевает срок действия токена доступа

#laravel #jwt #laravel-passport

#laravel #jwt #laravel-паспорт

Вопрос:

Раньше я использовал чистую jwt библиотеку в своих PHP-проектах. Для продления токена пользователя я использую токен обновления. В паспорте Laravel такой концепции нет. Существует только токен доступа, у которого есть время истечения срока действия.

Представьте, что я установил время на 1 час. Через час пользователь выходит из системы во время работы на веб-сайте. Какова наилучшая практика в Laravel?

Пожалуйста, не упоминайте о длительном истечении времени, которое не является решением.

Комментарии:

1. итак, вам нужно решение с использованием passport?

2. @lagbox Да, вероятно.

Ответ №1:

В Laravel Passport есть токены обновления: https://laravel.com/docs/8.x/passport#refreshing-tokens

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

Вы можете настроить время жизни токена, как описано здесь: https://laravel.com/docs/8.x/passport#token-lifetimes

Общие варианты использования включают получение новых токенов доступа после истечения срока действия старых или получение доступа к новому ресурсу в первый раз.

Комментарии:

1. Спасибо. Но ссылка, которую вы упомянули, предназначена для oauth протокола. Я просто хочу авторизовать своего пользователя простым способом.

2. Предполагая, что вы разрабатываете API для приложения первого производителя или SPA, вам нужен password-grant поток. Это очень похоже на JWT. laravel.com/docs/8.x/passport#creating-a-password-grant-client

3. Как указано в документах: The OAuth2 password grant allows your other first-party clients, such as a mobile application, to obtain an access token using an e-mail address / username and password. This allows you to issue access tokens securely to your first-party clients without requiring your users to go through the entire OAuth2 authorization code redirect flow.

4. У меня есть пара стандартных проектов, которые вы можете использовать, чтобы понять, как это работает. Nuxt.js использование: github.com/pktharindu/nuxt-laravel-passport-example Шаблон паспорта: github.com/pktharindu/laravel-api-boilerplate-passport

5. Ваш login маршрут использует 'Laravel\Passport\Http\Controllers\AccessTokenController@issueToken' . Возвращает ли он как токен доступа, так и токен обновления?