ich derzeit an einer API bin zu arbeiten und nach ein wenig Zeit, ich verstehe jetzt, wie JWT ein Token zu erhalten in Go verwenden. Mit diesem Token kann ich einen Benutzer verbunden halten, aber wie kann ich mich von der Client-Anwendung abmelden?Golang und JWT - Einfache Logout
Hier ist mein token.go
Code:
package main
import (
"github.com/dgrijalva/jwt-go"
"time"
)
const (
tokenEncodeString = "something"
)
func createToken(user User) (string, error) {
// create the token
token := jwt.New(jwt.SigningMethodHS256)
// set some claims
token.Claims["username"] = user.Username;
token.Claims["password"] = user.Password;
token.Claims["exp"] = time.Now().Add(time.Hour * 72).Unix()
//Sign and get the complete encoded token as string
return (token.SignedString([]byte(tokenEncodeString)))
}
func parseToken(unparsedToken string) (bool, string) {
token, err := jwt.Parse(unparsedToken, func(token *jwt.Token) (interface{}, error) {
return []byte(tokenEncodeString), nil
})
if err == nil && token.Valid {
return true, unparsedToken
} else {
return false, ""
}
}
Nach Recherchen fand ich heraus, dass ich eine schwarze Liste verwenden, aber ich möchte wirklich wissen, ob es oben mit etwas einfacher, wie der Code möglich ist.
Ich möchte auch eine Lösung finden, die mit dem Speicher arbeitet nach dem JWT Prozess verwendet. Jemand, der sich die ganze Zeit trennt/verbindet, muss für jede Sitzung nur einen Token haben, nicht einen für ihn und hundert für eine bestimmte schwarze Liste.
JWT-Abmeldungen werden in der Regel auf der Clientseite ausgeführt. Die Ausgabe eines "leeren" Tokens könnte dazu dienen, dasselbe zu tun. – anthony
ein paar Dinge, es ist eine ziemlich schlechte Idee, ein Passwort in einem JWT-Token zu speichern, obwohl sie signiert sind, können sie immer noch leicht Base64 entschlüsselt werden. Für den Rest der Frage ist das im Allgemeinen ziemlich einfach zu lösen mit einer Session-ID, die Sie serverseitig ablaufen lassen, wenn Sie das Token ungültig machen wollen. – photoionized
Ok ich werde das ändern, danke für deine Nachrichten;) – Emixam23