2016-09-29 3 views
0

Я использую JWT для управления доступом пользователя к нашей системе API. Проблема, с которой я сталкиваюсь, заключается в том, что токен истекает через несколько минут. Как я могу заставить токен JWT истекать таким образом, что он истекает только тогда, когда пользователь вручную выходит из системы.JWT/Laravel Продление срока действия токена

Спасибо.

ответ

0

В Laravel 5.3, я просто закомментируйте строку в конфиге/jwt.php т.е. .., // ttl => 60 и теперь время к жизни не существует и истечение лексема срок службы. и признать недействительными лексема использование этого кода ниже в выходе из системы() т.е., JWTAuth::invalidate(JWTAuth::getToken());

0

Добавить «ехр» в массиве в качестве второго параметра для метода «попытка». Этот «exp» - это метка времени.
Например:

$token=JWTAuth::attempt(
      ['email'=>$email,'password'=>$password], 
      ['exp' => Carbon::now()->addweek()->timestamp] 
     ); 
0

Вам нужно хранить время истечения для маркеров стороны сервера, а не внутри маркеров. Это означает, что вы не устанавливаете ключ exp в токен. Например, вы можете хранить jti с истечением срока действия в базе данных. Когда маркер затем принимается для аутентификации, вы можете проверить токен, а затем проверить последнюю увиденную дату токена на основе jti, хранящегося в базе данных, с ожидаемым временем жизни и текущим временем. Если токен по-прежнему действителен, вы восстанавливаете последнюю дату просмотра jti в текущее время.

Смежные вопросы