J'essaye d'implémenter l'authentification basée sur des jetons dans Laravel 5.5 en utilisant JWTAuth de Tymon. J'ai suivi le GitHub Documentation pour la bibliothèque et j'utilise le flux d'authentification suivant. Voici la partie d'authentification de mon itinéraire de connexion:Authentification Laravel Tymon JWT: recherche de jeton valide en attente avant l'authentification?
try {
// attempt to verify the credentials and create a token for the user
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json(['success' => false, 'error' => 'Invalid Credentials. Please make sure you entered the right information and you have verified your email address.'], 401);
}
}
catch (JWTException $e) {
// something went wrong whilst attempting to encode the token
return response()->json(['success' => false, 'error' => 'could_not_create_token'], 500);
}
// all good so return the token
return response()->json(['success' => true, 'data'=> [ 'token' => $token ]]);
Et voici les routes:
Route::group([
'middleware' => ['jwt.auth', 'jwt.refresh'],
],
function() {
// Routes requiring authentication
Route::get('/logout', 'Auth\[email protected]');
Route::get('/protected', function() {
return 'This is a protected page. You must be logged in to see it.';
});
});
vous pouvez donc voir que je suis en utilisant le jwt.auth et intergiciels jwt.refresh. Maintenant, tout fonctionne comme prévu et je peux authentifier les utilisateurs avec des jetons. Chaque jeton a une durée de vie d'une utilisation et un jeton valide est fourni après chaque requête (le flux de rafraîchissement).
Cependant, mon problème est que si j'ai un jeton valide pour un utilisateur qui n'a pas encore été utilisé, puis-je le supprimer de l'en-tête et cliquez sur le/itinéraire de connexion avec des informations d'identification valides, je suis délivré une autre jeton valide. J'ai maintenant deux jetons valides qui peuvent être utilisés pour authentifier un utilisateur, car ma route/login n'invalide pas les jetons émis précédemment.
Est-ce que quelqu'un sait d'une manière de vérifier si un utilisateur a un jeton valide exceptionnel, de sorte qu'il peut être invalidé si l'utilisateur se connecte d'ailleurs?