2017-06-26 5 views
1

Ich verwende JWT-Auth für die Authentifizierung. Ich habe eine Middleware erstellt, die prüft, ob das Token abgelaufen ist, und dann aktualisiert es das Token und aktualisiert den Header. Aber in meinem Controller bekommt getToken() nicht das neue Token, sondern gibt das abgelaufene zurück. Ich habe den Wert der Kopfzeile in meinem Controller überprüft und es hat das neue Token. DieseJWT :: getToken() erhält nicht das richtige Token

ist, wie ich es in meiner Middleware:

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

und das ist in meinem Controller:

$token = JWTAuth::getToken(); 

Antwort

0

Nachdem an ihrem Code suchen. Ich habe eine setToken() Funktion gefunden, die mein Problem gelöst hat. Ich änderte meinen Code wie folgt:

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