JWT::getToken() не получает правильный токен

Я использую JWT-Auth для аутентификации. Я создал промежуточное программное обеспечение, которое проверяет, истек ли срок действия токена, а затем обновляет токен и обновляет заголовок. Но в моем контроллере getToken() не получает новый токен, а возвращает просроченный. Я проверил значение заголовка в своем контроллере, и у него есть новый токен.

Вот как я это делаю в своем промежуточном программном обеспечении:

$new_token = JWTAuth::refresh($token);
$request->headers->set('Authorization', 'Bearer '.$new_token);
$response = $next($request);

и это в моем контроллере:

$token = JWTAuth::getToken();

person Hirad Roshandel    schedule 26.06.2017    source источник


Ответы (2)


После просмотра их кода. Я нашел функцию setToken(), которая решила мою проблему. Я изменил свой код следующим образом:

$new_token = JWTAuth::refresh($token);
JWTAuth::setToken($new_token);
$response = $next($request);
$response->header('Authorization','Bearer '.$new_token);
return $response;
person Hirad Roshandel    schedule 26.06.2017

Измените версию пакета JWT 5.12 на 5.11 в файле composer.json, после чего он будет работать правильно. Я также застрял в той же проблеме за несколько дней

https://github.com/tymondesigns/jwt-auth/issues/1198

person Brijesh Dubey    schedule 26.06.2017
comment
Дело было не в версии - person Hirad Roshandel; 26.06.2017