2021-10-02 19:55:07 +03:00
|
|
|
package token // import "go.unistack.org/micro/v3/util/token"
|
2020-03-23 19:19:30 +03:00
|
|
|
|
|
|
|
import (
|
|
|
|
"errors"
|
2020-04-01 16:25:00 +03:00
|
|
|
"time"
|
2020-03-23 19:19:30 +03:00
|
|
|
|
2021-10-02 19:55:07 +03:00
|
|
|
"go.unistack.org/micro/v3/auth"
|
2020-03-23 19:19:30 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
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")
|
|
|
|
)
|
|
|
|
|
|
|
|
// Provider generates and inspects tokens
|
|
|
|
type Provider interface {
|
2020-04-01 16:25:00 +03:00
|
|
|
Generate(account *auth.Account, opts ...GenerateOption) (*Token, error)
|
|
|
|
Inspect(token string) (*auth.Account, error)
|
2020-03-23 19:19:30 +03:00
|
|
|
String() string
|
|
|
|
}
|
2020-04-01 16:25:00 +03:00
|
|
|
|
2021-02-14 16:16:01 +03:00
|
|
|
// Token holds the auth token
|
2020-04-01 16:25:00 +03:00
|
|
|
type Token struct {
|
2021-03-06 19:45:13 +03:00
|
|
|
// Created time of token created
|
2020-04-01 16:25:00 +03:00
|
|
|
Created time.Time `json:"created"`
|
2021-03-06 19:45:13 +03:00
|
|
|
// Expiry ime of the token
|
2020-04-01 16:25:00 +03:00
|
|
|
Expiry time.Time `json:"expiry"`
|
2021-03-06 19:45:13 +03:00
|
|
|
// Token holds the actual token
|
|
|
|
Token string `json:"token"`
|
2020-04-01 16:25:00 +03:00
|
|
|
}
|