Accept user in CreateToken

This commit is contained in:
Jan Bader 2016-12-20 13:43:15 +01:00
parent e955638510
commit b5114beacf
3 changed files with 8 additions and 5 deletions

View File

@ -118,7 +118,7 @@ func (h *Handler) loginPost(c *gin.Context) {
return return
} }
t, err := h.TokenVerifier.CreateToken(user.Email, user.Name) t, err := h.TokenVerifier.CreateToken(user)
if err != nil { if err != nil {
c.AbortWithStatus(http.StatusUnauthorized) c.AbortWithStatus(http.StatusUnauthorized)
} }

View File

@ -11,6 +11,8 @@ import (
// TokenVerifier verifies Tokens // TokenVerifier verifies Tokens
type TokenVerifier struct { type TokenVerifier struct {
} }
// Token contains everything to authenticate a user
type Token struct { type Token struct {
username string username string
name string name string
@ -23,10 +25,10 @@ const (
) )
// CreateToken creates a new token from username and name // 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{ token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"usr": username, "usr": user.Email,
"name": name, "name": user.Name,
"exp": time.Now().Add(time.Hour * expiration).Unix(), "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 return t, nil
} }
// VerifyToken verifys a given string-token
func (tv *TokenVerifier) VerifyToken(tokenString string) (budgeteer.Token, error) { func (tv *TokenVerifier) VerifyToken(tokenString string) (budgeteer.Token, error) {
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {

View File

@ -10,5 +10,5 @@ type Token interface {
// TokenVerifier verifies a Token // TokenVerifier verifies a Token
type TokenVerifier interface { type TokenVerifier interface {
VerifyToken(string) (Token, error) VerifyToken(string) (Token, error)
CreateToken(string, string) (string, error) CreateToken(*User) (string, error)
} }