#php #laravel #apache #authentication #jwt
#php #laravel #apache #аутентификация #jwt
Вопрос:
итак, я обновляю свой jwt
пакет на моем Laravel v5.8, мне нужно обновить из-за проблемы с безопасностью. Однако обновление jwt
непросто, слишком много проб и ошибок. Наконец, я нашел решение из его репозитория github здесь, после jwt
чего обновление завершено.
==========
Краткое изложение решения путем добавления:
(1) Обновите jwt с помощью composer require tymon/jwt-auth:1.0.* --prefer-source
(2) Измените строку ниже config/app.php
, прежде чем:
'providers' => [
...
'TymonJWTAuthProvidersJWTAuthServiceProvider' ,
...
]
в
'providers' => [
...
'TymonJWTAuthProvidersLaravelServiceProvider' ,
...
]
(3) Добавить implements JWTSubject
в User
класс модели
(4) Добавьте нижеприведенную строку в User
класс модели:
public function getJWTIdentifier()
{
return $this->getKey();
}
public function getJWTCustomClaims()
{
return [];
}
(5) выполнить php artisan vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
==========
Однако это имеет побочный эффект.
Теперь все сеансы входа в систему длятся недолго.
До этого исправления иногда требовался месяц для истечения срока действия сеанса входа в систему, но теперь ему нужно всего пару часов. Более того, никакая другая логика / кодировка не добавлена, кроме приведенной выше.
Есть идея / решение?
Заранее благодарю вас…
Комментарии:
1. Вы не предоставили нам много информации, связанной с этой актуальной проблемой (т.Е. Результаты отладки, конфигурация для пакета jwt или даже то, как долго «все сеансы входа в систему длятся недолго». точно. Мы говорим о часе, 5 минутах при загрузке следующей страницы? Тем не менее, я бы начал с проверки, требует ли текущая версия репозитория какого-либо файла настроек, который либо отсутствует, либо в нем отсутствуют значения, либо он был переименован из вашей очень старой версии.
Ответ №1:
Время жизни определяется в config/jwt.php
.
Посмотрите строку, в которой говорится 'ttl' => env('JWT_TTL', 60)
, что означает, что по умолчанию токен будет действителен в течение 1 часа.
Если у вас его еще нет, обязательно выполните следующую команду, чтобы опубликовать файл конфигурации пакета:
php artisan vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
Комментарии:
1. Привет, спасибо. Я постараюсь