Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(*cfg)
Option allows setting optional parameters of the TokenStore.
func WithEncryptionKey ¶
func WithEncryptionKey(k *ecdsa.PrivateKey) Option
WithEncryptionKey return an option to encrypt private session keys using provided private key.
func WithLogger ¶
WithLogger returns an option to specify logger.
func WithTimeout ¶
WithTimeout returns option to specify database connection timeout.
type TokenStore ¶
type TokenStore struct {
// contains filtered or unexported fields
}
TokenStore is a wrapper around persistent K:V db that allows creating (storing), retrieving and expiring (removing) session tokens.
func NewTokenStore ¶
func NewTokenStore(path string, opts ...Option) (*TokenStore, error)
NewTokenStore creates, initializes and returns a new TokenStore instance.
The elements of the instance are stored in bolt DB.
func (*TokenStore) Create ¶
func (s *TokenStore) Create(_ context.Context, body *session.CreateRequestBody) (*session.CreateResponseBody, error)
Create inits a new private session token using information from corresponding request, saves it to bolt database (and encrypts private keys if storage has been configured so). Returns response that is filled with just created token's ID and public key for it.
func (*TokenStore) Get ¶
func (s *TokenStore) Get(ownerID user.ID, tokenID []byte) (t *storage.PrivateToken)
Get returns private token corresponding to the given identifiers.
Returns nil is there is no element in storage.
func (*TokenStore) RemoveOld ¶
func (s *TokenStore) RemoveOld(epoch uint64)
RemoveOld removes all tokens expired since provided epoch.