Documentation ¶
Index ¶
- Variables
- type Manager
- func (m *Manager) Add(user User) error
- func (m *Manager) Auth(user User) (bool, error)
- func (m *Manager) Exists(user User) (bool, error)
- func (m *Manager) Logout(token string) (*User, error)
- func (m *Manager) Remove(user User) error
- func (m *Manager) Token(user User) (string, error)
- func (m *Manager) ValidateToken(token string) (*User, error)
- type MemoryStore
- func (m *MemoryStore) AddToken(token string) error
- func (m *MemoryStore) Duration() time.Duration
- func (m *MemoryStore) Key() []byte
- func (m *MemoryStore) Load(name string) ([]byte, error)
- func (m *MemoryStore) NameExists(name string) (bool, error)
- func (m *MemoryStore) Remove(name string) error
- func (m *MemoryStore) RemoveToken(token string) error
- func (m *MemoryStore) Save(name string, data []byte) error
- func (m *MemoryStore) TokenExists(token string) (bool, error)
- type Store
- type StoreTokener
- type Tokener
- type User
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrExist = errors.New("user already exists") ErrNotExist = errors.New("user doesn't exist") ErrInvalid = errors.New("invalid argument") ErrIO = errors.New("io error") ErrHash = errors.New("hash error") // tried to generate this error during tests, didn't happen ErrExpired = errors.New("token expired") ErrInvalidToken = errors.New("invalid token") ErrInvalidCredentials = errors.New("invalid credentials") ErrBlacklisted = errors.New("user blacklisted - logged out") )
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
type MemoryStore ¶
type MemoryStore struct {
// contains filtered or unexported fields
}
MemoryStore satisfies Store interface
func NewMemoryStore ¶
func NewMemoryStore(key []byte, duration time.Duration) *MemoryStore
NewMemoryStore is default constructor for MemoryStore
func (*MemoryStore) AddToken ¶
func (m *MemoryStore) AddToken(token string) error
func (*MemoryStore) Duration ¶
func (m *MemoryStore) Duration() time.Duration
Duration returns token validation time
func (*MemoryStore) Key ¶
func (m *MemoryStore) Key() []byte
Key is responsible for returning key to generate jwtToken
func (*MemoryStore) Load ¶
func (m *MemoryStore) Load(name string) ([]byte, error)
Load loads user data from store
func (*MemoryStore) NameExists ¶
func (m *MemoryStore) NameExists(name string) (bool, error)
NameExists returns true, whether user with provided name exists
func (*MemoryStore) RemoveToken ¶
func (m *MemoryStore) RemoveToken(token string) error
func (*MemoryStore) Save ¶
func (m *MemoryStore) Save(name string, data []byte) error
Save users data into store
func (*MemoryStore) TokenExists ¶
func (m *MemoryStore) TokenExists(token string) (bool, error)
type Store ¶
type Store interface { // Load user data, if user doesn't exist, return "" Load(name string) (data []byte, err error) // Save new user with custom data. Overwrites, if already exists Save(name string, data []byte) error // NameExists allows to check whether user with name already exists NameExists(name string) (bool, error) // Remove user with provided name, if user doesn't exist, don't do anything Remove(name string) error // AddToken adds token to token blacklists AddToken(token string) error // TokenExists checks whether token exists in blacklist TokenExists(token string) (bool, error) // RemoveToken removes token from blacklist RemoveToken(token string) error }
Store realizes access to some kind of user database (maybe even just map[string][]data) Errors returned by interface should be ONLY related to internal IO errors
type StoreTokener ¶
Click to show internal directories.
Click to hide internal directories.