...
1 package jwt
2
3 import (
4 "errors"
5 )
6
7
8 var (
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")
12 )
13
14
15 const (
16 ValidationErrorMalformed uint32 = 1 << iota
17 ValidationErrorUnverifiable
18 ValidationErrorSignatureInvalid
19
20
21 ValidationErrorAudience
22 ValidationErrorExpired
23 ValidationErrorIssuedAt
24 ValidationErrorIssuer
25 ValidationErrorNotValidYet
26 ValidationErrorId
27 ValidationErrorClaimsInvalid
28 )
29
30
31 func NewValidationError(errorText string, errorFlags uint32) *ValidationError {
32 return &ValidationError{
33 text: errorText,
34 Errors: errorFlags,
35 }
36 }
37
38
39 type ValidationError struct {
40 Inner error
41 Errors uint32
42 text string
43 }
44
45
46 func (e ValidationError) Error() string {
47 if e.Inner != nil {
48 return e.Inner.Error()
49 } else if e.text != "" {
50 return e.text
51 } else {
52 return "token is invalid"
53 }
54 }
55
56
57 func (e *ValidationError) valid() bool {
58 return e.Errors == 0
59 }
60
View as plain text