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
}
t, err := h.TokenVerifier.CreateToken(user.Email, user.Name)
t, err := h.TokenVerifier.CreateToken(user)
if err != nil {
c.AbortWithStatus(http.StatusUnauthorized)
}

View File

@ -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 {

View File

@ -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)
}