Как продлить срок действия токена? У меня есть функция с истекшим временем, но она работает неправильно.
protected function respondWithToken($token)
{
return response()->json([
'token' => $token,
'token_type' => 'bearer',
'expires_in' => auth()->factory()->getTTL() * 464465353454316000,
'user' => auth()->user()
]);
}
}
Срок действия токена истекает очень быстро.
'expires_in' => auth()->factory()->getTTL() * 464465353454316000 //this line not work property. Token expired early
ставлю вручную. Но по умолчанию *60
У вас не возникает переполнения в этой ситуации? Почему бы не просто 'expires_in' => 60 * 60 * 24 * 7// 1 week?
@Justinas Это сработает? 'expires_in' => auth()->factory()->getTTL() * 60 * 60 * 24 * 7 ?
auth()->factory()->getTTL() предположительно возвращает количество минут, в течение которых должен работать токен, а * 60 преобразует его в секунды. Какова ценность auth()->factory()->getTTL() в вашем случае?
максимальный целочисленный размер для 32-битной системы равен 147483647, возможно, в этом заключается (часть) вашей проблемы
@Thomas Я установил 'expires_in' => auth()->factory()->getTTL() * 60 * 60 * 24 * 17 Это будет 17 недель, и в ответ "expires_in": 88128000, это нормально?
Нет, внутри целое число, возможно, все еще переполняется. Просто записать это как умножение не поможет. Возможно, вы можете сначала попробовать с жестко закодированным значением меньше максимального целого числа и посмотреть, сработает ли оно тогда, чтобы исключить проблему.
Проблема с этой версией jwt заключается в том, что у меня нет файла jwt в папке конфигурации, и я не могу редактировать его в папке конфигурации. Вопрос простой, как я могу расширить токен времени?
@AlexAl Вы пробовали опубликовать папку конфигурации? php artisan vendor:publish --provider = "Tymon\JWTAuth\Providers\LaravelServiceProvider"
@cbaconnier Это проблема, которую мне нужно установить в config/jwt 'ttl' => env('JWT_TTL', TIME),
Я не понимаю, в чем твоя проблема. config/jwt.phpдоступен на 1.0.0-rc.2 После того, как вы публиковать файл, вы можете установить свой срок жизни
Теперь все хорошо Спасибо :)






Опубликуйте файл конфигурации на своем терминале php artisan vendor:publish --provider = "Tymon\JWTAuth\Providers\LaravelServiceProvider"
Откройте config/jwt.php установите ttl на желаемые минуты, по умолчанию 60 мин.
Да это правда. @cbaconnier дает ответ на мой вопрос.
'expires_in' => auth()->factory()->getTTL() * 60000
Если вы это сделаете, ваш токен будет действителен в течение 1 дня.
Попробуйте это, это работает для меня:
use JWTAuth;
...
'expires_in' => JWTAuth::factory()->getTTL() * 24,
Эгад, откуда у тебя этот номер?