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
}
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
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 {
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
})
@ -72,16 +78,16 @@ func (tv *TokenVerifier) VerifyToken(tokenString string) (budgeteer.Token, error
func verifyToken(token *jwt.Token) (jwt.MapClaims, error) {
if !token.Valid {
return nil, fmt.Errorf("Token is not valid")
return nil, ErrInvalidToken
}
claims, ok := token.Claims.(jwt.MapClaims)
if !ok {
return nil, fmt.Errorf("Claims are not of Type MapClaims")
return nil, ErrInvalidToken
}
if !claims.VerifyExpiresAt(time.Now().Unix(), true) {
return nil, fmt.Errorf("Claims have expired")
return nil, ErrTokenExpired
}
return claims, nil