Extract error consts

This commit is contained in:
Jan Bader 2022-02-20 16:51:01 +00:00
parent 77afe700ae
commit c5be03ab6b

View File

@ -44,11 +44,17 @@ func (tv *TokenVerifier) CreateToken(user *postgres.User) (string, error) {
return t, nil return t, nil
} }
var (
ErrUnexpectedSigningMethod = fmt.Errorf("Unexpected signing method")
ErrInvalidToken = fmt.Errorf("Token is invalid")
ErrTokenExpired = fmt.Errorf("Token has expired")
)
// VerifyToken verifys a given string-token // 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 {
return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"]) return nil, fmt.Errorf("method '%v': %w", token.Header["alg"], ErrUnexpectedSigningMethod)
} }
return []byte(secret), nil return []byte(secret), nil
}) })
@ -72,16 +78,16 @@ func (tv *TokenVerifier) VerifyToken(tokenString string) (budgeteer.Token, error
func verifyToken(token *jwt.Token) (jwt.MapClaims, error) { func verifyToken(token *jwt.Token) (jwt.MapClaims, error) {
if !token.Valid { if !token.Valid {
return nil, fmt.Errorf("Token is not valid") return nil, ErrInvalidToken
} }
claims, ok := token.Claims.(jwt.MapClaims) claims, ok := token.Claims.(jwt.MapClaims)
if !ok { if !ok {
return nil, fmt.Errorf("Claims are not of Type MapClaims") return nil, ErrInvalidToken
} }
if !claims.VerifyExpiresAt(time.Now().Unix(), true) { if !claims.VerifyExpiresAt(time.Now().Unix(), true) {
return nil, fmt.Errorf("Claims have expired") return nil, ErrTokenExpired
} }
return claims, nil return claims, nil