token

package
v1.0.0-alpha.4 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotFound is returned when a token cannot be found
	ErrNotFound = errors.New("token not found")
	// ErrEncodingToken is returned when the service encounters an error during encoding
	ErrEncodingToken = errors.New("error encoding the token")
	// ErrInvalidToken is returned when the token provided is not valid
	ErrInvalidToken = errors.New("invalid token provided")
)

Functions

This section is empty.

Types

type GenerateOption

type GenerateOption func(o *GenerateOptions)

func WithExpiry

func WithExpiry(d time.Duration) GenerateOption

WithExpiry for the generated account's token expires

type GenerateOptions

type GenerateOptions struct {
	// Expiry for the token
	Expiry time.Duration
}

func NewGenerateOptions

func NewGenerateOptions(opts ...GenerateOption) GenerateOptions

NewGenerateOptions from a slice of options

type Option

type Option func(o *Options)

func WithPrivateKey

func WithPrivateKey(key string) Option

WithPrivateKey sets the JWT private key

func WithPublicKey

func WithPublicKey(key string) Option

WithPublicKey sets the JWT public key

func WithStore

func WithStore(s store.Store) Option

WithStore sets the token providers store

type Options

type Options struct {
	// Store to persist the tokens
	Store store.Store
	// PublicKey base64 encoded, used by JWT
	PublicKey string
	// PrivateKey base64 encoded, used by JWT
	PrivateKey string
}

func NewOptions

func NewOptions(opts ...Option) Options

type Provider

type Provider interface {
	Generate(account *auth.Account, opts ...GenerateOption) (*Token, error)
	Inspect(token string) (*auth.Account, error)
	String() string
}

Provider generates and inspects tokens

type Token

type Token struct {
	// The actual token
	Token string `json:"token"`
	// Time of token creation
	Created time.Time `json:"created"`
	// Time of token expiry
	Expiry time.Time `json:"expiry"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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