token

package
v0.0.0-...-ec5b2ee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidToken = errors.New("token is invalid")
	ErrExpiredToken = errors.New("token has expired")
)

Different types of error returned by the verifyToken function

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

func (maker *JWTMaker) CreateToken(username string, duration time.Duration) (string, *Payload, error)

func (JWTMaker) VerifyToken

func (maker JWTMaker) VerifyToken(token string) (*Payload, error)

type Maker

type Maker interface {

	// createToken creates a new token for a specific username and duration
	CreateToken(username string, duration time.Duration) (string, *Payload, error)

	// verifyToken check if the token is valid or nor
	VerifyToken(token string) (*Payload, error)
}

Maker is an interface to manage token

func NewJWTMaker

func NewJWTMaker(secretKey string) (Maker, error)

NewJWTMaker creates anew JWTMaker

func NewPasetoMaker

func NewPasetoMaker(symetricKey string) (Maker, error)

NewPasetoMaker creates 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, duration time.Duration) (string, *Payload, error)

func (*PasetoMaker) VerifyToken

func (maker *PasetoMaker) VerifyToken(token string) (*Payload, error)

type Payload

type Payload struct {
	ID        uuid.UUID `json:"id"`
	Username  string    `json:"username"`
	IssueAt   time.Time `json:"issue_at"`
	ExpiredAt time.Time `json:"expired_at"`
}

Payload contains the payload data of the token

func NewPayload

func NewPayload(username string, duration time.Duration) (*Payload, error)

func (*Payload) GetAudience

func (payload *Payload) GetAudience() (jwt.ClaimStrings, error)

func (*Payload) GetExpirationTime

func (payload *Payload) GetExpirationTime() (*jwt.NumericDate, error)

func (*Payload) GetIssuedAt

func (payload *Payload) GetIssuedAt() (*jwt.NumericDate, error)

func (*Payload) GetIssuer

func (payload *Payload) GetIssuer() (string, error)

func (*Payload) GetNotBefore

func (payload *Payload) GetNotBefore() (*jwt.NumericDate, error)

func (*Payload) GetSubject

func (payload *Payload) GetSubject() (string, error)

func (*Payload) Valid

func (payload *Payload) Valid() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL