From b5114beacfe91b69ffb0d08b36023356ec89f9f6 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Tue, 20 Dec 2016 13:43:15 +0100 Subject: [PATCH] Accept user in CreateToken --- http/http.go | 2 +- jwt/login.go | 9 ++++++--- token.go | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/http/http.go b/http/http.go index 1547a03..d44fe25 100644 --- a/http/http.go +++ b/http/http.go @@ -118,7 +118,7 @@ func (h *Handler) loginPost(c *gin.Context) { return } - t, err := h.TokenVerifier.CreateToken(user.Email, user.Name) + t, err := h.TokenVerifier.CreateToken(user) if err != nil { c.AbortWithStatus(http.StatusUnauthorized) } diff --git a/jwt/login.go b/jwt/login.go index 39264ec..ffd4929 100644 --- a/jwt/login.go +++ b/jwt/login.go @@ -11,6 +11,8 @@ import ( // TokenVerifier verifies Tokens type TokenVerifier struct { } + +// Token contains everything to authenticate a user type Token struct { username string name string @@ -23,10 +25,10 @@ const ( ) // CreateToken creates a new token from username and name -func (tv *TokenVerifier) CreateToken(username string, name string) (string, error) { +func (tv *TokenVerifier) CreateToken(user *budgeteer.User) (string, error) { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ - "usr": username, - "name": name, + "usr": user.Email, + "name": user.Name, "exp": time.Now().Add(time.Hour * expiration).Unix(), }) @@ -39,6 +41,7 @@ func (tv *TokenVerifier) CreateToken(username string, name string) (string, erro return t, nil } +// VerifyToken verifys a given string-token func (tv *TokenVerifier) VerifyToken(tokenString string) (budgeteer.Token, error) { token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { diff --git a/token.go b/token.go index 6637202..b5eea8c 100644 --- a/token.go +++ b/token.go @@ -10,5 +10,5 @@ type Token interface { // TokenVerifier verifies a Token type TokenVerifier interface { VerifyToken(string) (Token, error) - CreateToken(string, string) (string, error) + CreateToken(*User) (string, error) }