2017-06-26 3 views
1

J'utilise JWT-Auth pour l'authentification. J'ai créé un middleware qui vérifie si le jeton a expiré, puis il actualise le jeton et met à jour l'en-tête. Mais dans mon contrôleur, getToken() n'obtient pas le nouveau jeton mais renvoie le jeton expiré. J'ai vérifié la valeur de l'en-tête dans mon contrôleur et il a le nouveau jeton.JWT :: getToken() n'obtient pas le jeton approprié

Voici comment je le fais dans mon middleware:

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

et c'est dans mon contrôleur:

$token = JWTAuth::getToken(); 

Répondre

0

version Changement de package JWT 5.12 à 5.11 dans le fichier composer.json alors son travaille correctement. J'étais aussi coincé dans la même question avant quelques jours

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

+0

Ce n'était pas un problème de version –

0

Après avoir regardé leur code. J'ai trouvé une fonction setToken() qui a résolu mon problème. J'ai modifié mon code comme ceci:

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