9 ErrInvalidKey = errors.New("key is invalid")
10 ErrInvalidKeyType = errors.New("key is of invalid type")
11 ErrHashUnavailable = errors.New("the requested hash function is unavailable")
14 // The errors that might occur when parsing and validating a token
16 ValidationErrorMalformed uint32 = 1 << iota // Token is malformed
17 ValidationErrorUnverifiable // Token could not be verified because of signing problems
18 ValidationErrorSignatureInvalid // Signature validation failed
20 // Standard Claim validation errors
21 ValidationErrorAudience // AUD validation failed
22 ValidationErrorExpired // EXP validation failed
23 ValidationErrorIssuedAt // IAT validation failed
24 ValidationErrorIssuer // ISS validation failed
25 ValidationErrorNotValidYet // NBF validation failed
26 ValidationErrorId // JTI validation failed
27 ValidationErrorClaimsInvalid // Generic claims validation error
30 // Helper for constructing a ValidationError with a string error message
31 func NewValidationError(errorText string, errorFlags uint32) *ValidationError {
32 return &ValidationError{
38 // The error from Parse if token is not valid
39 type ValidationError struct {
40 Inner error // stores the error returned by external dependencies, i.e.: KeyFunc
41 Errors uint32 // bitfield. see ValidationError... constants
42 text string // errors that do not have a valid error just have text
45 // Validation error is an error type
46 func (e ValidationError) Error() string {
48 return e.Inner.Error()
49 } else if e.text != "" {
52 return "token is invalid"
57 func (e *ValidationError) valid() bool {