Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidToken = errors.New("token is invalid") ErrExpiredToken = errors.New("token has expired") ErrUsedTokenBeforeIssued = errors.New("token used before issued") )
Different types of error returned by the VerifyToken function
var (
ErrJWTMinKeySize = fmt.Errorf("invalid key size: must be at least %d characters", minSecretKeySize)
)
var (
ErrPasetoKeySize = fmt.Errorf("invalid key size: must be exactly %d characters", chacha20poly1305.KeySize)
)
Functions ¶
This section is empty.
Types ¶
type JWTMaker ¶
type JWTMaker struct {
// contains filtered or unexported fields
}
JWTMaker is a JSON Web Token maker
func (*JWTMaker) CreateToken ¶
CreateToken creates a new token for a specific username and duration
func (*JWTMaker) VerifyToken ¶
func (maker *JWTMaker) VerifyToken(token string) (*JWTPayload, error)
VerifyToken checks if the token is valid or not
type JWTPayload ¶
type JWTPayload struct { ID uuid.UUID `json:"id"` Username string `json:"username"` IssuedAt time.Time `json:"issued_at"` ExpiredAt time.Time `json:"expired_at"` jwt.RegisteredClaims }
Payload contains the payload data of the token
func NewJWTPayLoad ¶
func NewJWTPayLoad(username string, duration time.Duration) (*JWTPayload, error)
NewPayLoad creates a new token payload with a specific username and duration
func (*JWTPayload) Validate ¶
func (payload *JWTPayload) Validate() error
type JWTV5Maker ¶
type JWTV5Maker interface { // CreateToken creates a new token for a specific username and duration CreateToken(username string, duration time.Duration) (string, error) // VerifyToken checks if the token is valid or not VerifyToken(token string) (*JWTPayload, error) }
JWTMaker is an interface for new jwt tokens
func NewJWTMaker ¶
func NewJWTMaker(secretKey string) (JWTV5Maker, error)
NewJWTMaker creates a new JWTMaker
type Maker ¶
type Maker interface { // CreateToken creates a new token for a specific username and duration CreateToken(username string, role string, duration time.Duration) (string, *Payload, error) // VerifyToken checks if the token is valid or not VerifyToken(token string) (*Payload, error) }
Maker is an interface for managing tokens
func NewPasetoMaker ¶
NewPasetoMaker creates a new PasetoMaker
type PasetoMaker ¶
type PasetoMaker struct {
// contains filtered or unexported fields
}
PasetoMaker is a PASETO token maker
func (*PasetoMaker) CreateToken ¶
func (maker *PasetoMaker) CreateToken(username string, role string, duration time.Duration) (string, *Payload, error)
CreateToken creates a new token for a specific username and duration
func (*PasetoMaker) VerifyToken ¶
func (maker *PasetoMaker) VerifyToken(token string) (*Payload, error)
VerifyToken checks if the token is valid or not
type Payload ¶
type Payload struct { ID uuid.UUID `json:"id"` Username string `json:"username"` Role string `json:"role"` IssuedAt time.Time `json:"issued_at"` ExpiredAt time.Time `json:"expired_at"` }
Payload contains the payload data of the token
func NewPayLoad ¶
NewPayLoad creates a new token payload with a specific username and duration