Ich verwende jwt-auth, um eine RESTful Auth-Ressource in meiner API zu machen. Wenn eine Client-App die Anmeldungsressource aufruft, wird der Benutzer case angemeldet, Ihr aktuelles Token muss ungültig gemacht werden, und so wird ein neues Token generiert.Logout-Problem mit Laravel JWT-Authentifizierung Authentifizierung
Aber Fall der aktuelle Token ist auf der schwarzen Liste ein TokenBlacklistedException
wird geworfen.
Wie kann man überprüfen, ob ein Token auf der Blacklist steht? Oder wie man einen Benutzer "Abmelden" korrekt implementiert? Ich versuche, auf jwt-auth API-Quelle zu finden, aber nicht existiert eine getToken()->isBlacklisted()
oder parseToken()->isBlacklisted()
oder ein Validator, um es zu implementieren.
Jedes Token ist ungültig parseToken() löst eine TokenBlacklistedException aus, daher ist eine isBlacklisted-Methode eine gute Methode, um zu überprüfen, ob das Token gültig ist, bevor ein Token ungültig wird.
INFO:
Der Balg Code überprüfen, ob Nutzlast ungültig ist, die TokenBlacklistedException
ausgelöst, wenn ungültig ist:
if(
false === \Tymon\JWTAuth\Blacklist::has(
\Tymon\JWTAuth\Facades\JWTAuth::getPayload($token)
)
) {
\Tymon\JWTAuth\Facades\JWTAuth::parseToken()->invalidate();
}
Wie um zu überprüfen, wie:
if(false ===\Tymon\JWTAuth\Facades\JWTAuth::parseToken()->isBlacklisted()) {
// invalidate...
}
aber in meinem Fall, ich teste, wenn Angular.js App ein ungültiges Token senden, so wenn ist ungültig 'JWTAuth :: invalidate (JWTAuth :: getToken())):' wird die TokenBlacklistedException werfen oder sagen, dass ein ungültiges Token . Ich muss vor dem Ungültigmachen überprüfen, ob dies bereits zuvor geschehen ist. – Maykonn
Oder löst eine TokenExpiredException aus, wenn ich versuche, ein abgelaufenes Token ungültig zu machen ... – Maykonn
Ich habe meine Antwort aktualisiert, um Ihnen zu zeigen, wie ich damit umgehe –