Heim > Artikel > Backend-Entwicklung > Wie behebt JWT die Gültigkeit und Fehler von Ansprüchen?
Ich erstelle eine Zugriffs- und Aktualisierungstokenlogik und möchte prüfen, ob das Zugriffstoken gültig (nicht bearbeitet) ist, auch wenn es abgelaufen ist. Wenn das Token abläuft, gibt Go einen Fehler zurück und macht das Token ungültig. Also überprüfe ich, ob der angegebene Fehler mit ErrTokenExpired übereinstimmt.
Kann ich 100 % sicher sein, dass der Fehler nicht Null ist, wenn das Token ungültig ist, sodass ich es löschen kann if !tkn.Valid{...
?
Ist das generell ein guter Ansatz oder wird der bearbeitete Token meine Verifizierung bestehen?
func VerifyJWT(jwtString, secret string) (*jwt.Token, *Claims, error) { claims := &Claims{} tkn, err := jwt.ParseWithClaims(jwtString, claims, func(token *jwt.Token) (interface{}, error) { return []byte(os.Getenv(secret)), nil }) return tkn, claims, err }
_, accClaims, err1 := VerifyJWT(req.Access, "ACCESS_SECRET") if err1 != nil && err1.Error()[:16] != jwt.ErrTokenExpired.Error()[:16] { WriteJSON(w, http.StatusBadRequest, APIError{Error: "invalid token access" + err1.Error()}) return }
JWT-Tokens sind sicher, wenn Ihr Code zwei Punkte enthält:
1-Wählen Sie einen guten Algorithmus
2- Erstellen Sie einen zufälligen Schlüssel
Wenn sich das Token ändert oder eine Zeitüberschreitung auftritt, können Ihnen diese beiden Optionen helfen: VerifyJWT
Einen Fehler zurückgeben!
Hinweis: Sie müssen immer auf Fehler prüfen und dem Kunden eine gute Antwort geben.
Hinweis (verbessern Sie Ihren Code): Um zu überprüfen, ob ein Fehler ErrTokenExpired ist, verwenden Sie errors
pkg.
Dein Beispiel:
// import "errors" _, accClaims, err := VerifyJWT(req.Access, "ACCESS_SECRET") if errors.Is(err, jwt.ErrTokenExpired) { // continue progress } if err != nil { WriteJSON(w, http.StatusUnauthorized, APIError{Error: err.Error()}) return }
Das obige ist der detaillierte Inhalt vonWie behebt JWT die Gültigkeit und Fehler von Ansprüchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!