Accept user in CreateToken
This commit is contained in:
parent
e955638510
commit
b5114beacf
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
2
token.go
2
token.go
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user