Heim >PHP-Framework >Laravel >Laravel JWT löschen
Vorwort
Bei der Verwendung von Laravel und JWT für die Webentwicklung kann es vorkommen, dass JWT im Laravel-Framework gelöscht wird.
Notwendigkeit, JWT zu löschen
JWT ist eine großartige Lösung für Benutzerauthentifizierungs- und Autorisierungsprobleme, aber in einigen Fällen müssen Sie JWT möglicherweise löschen. Hier sind einige Gründe dafür:
Schritte zum Löschen von JWT
Um JWT zu löschen, gibt es die folgenden drei Schritte:
Wir erklären Ihnen diese Schritte genauer.
JWT widerrufen
Für den JWT-Widerruf müssen Sie eine JWT-Blacklist führen. Wenn sich ein Benutzer abmeldet oder die Anwendung verlässt, fügen Sie das JWT des Benutzers zur Blacklist hinzu. Wenn ein Benutzer versucht, über dieses JWT auf Ihre Anwendung zuzugreifen, prüft Ihre Anwendung, ob das JWT auf der Blacklist steht. Wenn dies der Fall ist, darf der Benutzer Ihre Anwendung nicht betreten. Hier sind die Schritte, um dies zu erreichen:
Schritt 1: Erstellen Sie eine Middleware.
Erstellen Sie eine Middleware mit dem Namen „JwtBlacklist“.
php artisan make:middleware JwtBlacklist
Schritt 2: Schreiben Sie den Code
Schreiben Sie den folgenden Code in die Handle-Methode der Middleware:
public function handle($request, Closure $next) { $token = $request->bearerToken(); if(auth()->check()){ auth()->logout(); JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); }elseif($token){ try { JWTAuth::parseToken()->authenticate(); JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); } catch (JWTException $e) { // ignore errors } } return $next($request); }
Schritt 3: Registrieren Sie die Middleware #🎜 🎜#
Registrieren Sie die Middleware im $routeMiddleware-Array der Datei app/Http/Kernel.php.'jwt.blacklist' => AppHttpMiddlewareJwtBlacklist::class,Ändern Sie die Gültigkeitsdauer von JWTJWT besteht aus drei Teilen, nämlich Header (Base64-codiertes JSON-Objekt), Payload (Base64-codiertes JSON-Objekt) und Signatur. Daher können Sie den Gültigkeitszeitraum im Ladevorgang ändern. In Laravel/JWT können Sie den folgenden Code verwenden:
public function login(Request $request) { $credentials = $request->only('email', 'password'); if ($token = JWTAuth::attempt($credentials, ['exp' => Carbon::now()->addHours(24)->timestamp])) { return response()->json(['message' => 'Success', 'token' => $token]); } return response()->json(['error' => 'Unauthorized'], 401); }Im obigen Code legen wir die Gültigkeitsdauer des JWT auf 24 Stunden fest. JWT löschenWenn Benutzer das JWT manuell löschen müssen, müssen Sie dem Benutzer diese Informationen klar mitteilen. Sie können eine Schaltfläche oder einen Link für die Abmeldeaktion bereitstellen, damit der Benutzer das JWT löschen kann. Wenn Sie das JWT durch Schreiben von Code löschen möchten, können Sie Ihrem Controller den folgenden Code hinzufügen:
public function logout(Request $request) { JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); }Dieser Controller wird gelöscht, wenn der Benutzer auf die Schaltfläche „Abmelden“ klickt JWT. FazitIn diesem Artikel wird erklärt, wie man JWT in Laravel und JWT löscht. Sie können dies tun, indem Sie das JWT widerrufen, den Gültigkeitszeitraum ändern und das JWT löschen. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte eine Nachricht im Kommentarbereich und ich werde so schnell wie möglich antworten.
Das obige ist der detaillierte Inhalt vonLaravel JWT löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!