Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Configuration ¶ added in v0.9.0
Configuration encapsulates arguments to initialize a token store
type FileStore ¶
type FileStore string
FileStore implements TokenStore by saving users' Token under a directory specified by a string. Each access token is stored in a separate file.
func NewFileStore ¶ added in v0.9.0
NewFileStore creates a file token store.
It panics when it fails to create the directory.
func (FileStore) Delete ¶
Delete removes the access token from the file store.
Delete return an error if the token cannot removed. It is NOT not an error if the token does not exist at deletion time.
type NotFoundError ¶
NotFoundError is the error returned by Get if a TokenStore cannot find the requested token or the fetched token is expired.
func (*NotFoundError) Error ¶
func (e *NotFoundError) Error() string
type RedisStore ¶
type RedisStore struct {
// contains filtered or unexported fields
}
RedisStore implements TokenStore by saving users' token in a redis server
func NewRedisStore ¶
func NewRedisStore(address string, prefix string) *RedisStore
NewRedisStore creates a redis token store.
address is url to the redis server
prefix is a string prepending to access token key in redis
For example if the token is `cf4bdc65-3fe6-4d40-b7fd-58f00b82c506` and the prefix is `myApp`, the key in redis should be `myApp:cf4bdc65-3fe6-4d40-b7fd-58f00b82c506`.
func (*RedisStore) Delete ¶
func (r *RedisStore) Delete(accessToken string) error
Delete removes the access token from redis store.
func (*RedisStore) Get ¶
func (r *RedisStore) Get(accessToken string, token *Token) error
Get tries to read the specified access token from redis store and writes to the supplied Token.
func (*RedisStore) Put ¶
func (r *RedisStore) Put(token *Token) error
Put writes the specified token into redis store and overwrites existing Token if any.
type RedisToken ¶
type RedisToken struct { AccessToken string `redis:"accessToken"` ExpiredAt int64 `redis:"expiredAt"` AppName string `redis:"appName"` UserInfoID string `redis:"userInfoID"` }
RedisToken stores a Token with UnixNano timestamp
func (RedisToken) ToToken ¶
func (r RedisToken) ToToken() *Token
ToToken converts a RedisToken to auth token
type Store ¶
type Store interface { Get(accessToken string, token *Token) error Put(token *Token) error Delete(accessToken string) error }
Store represents a persistent storage for Token.
func InitTokenStore ¶
func InitTokenStore(config Configuration) Store
InitTokenStore accept a implementation and path string. Return a Store.
type Token ¶
type Token struct { AccessToken string `json:"accessToken" redis:"accessToken"` ExpiredAt time.Time `json:"expiredAt" redis:"expiredAt"` AppName string `json:"appName" redis:"appName"` UserInfoID string `json:"userInfoID" redis:"userInfoID"` }
Token is an expiry access token associated to a UserInfo.
func New ¶
New creates a new Token ready for use given a userInfoID and expiredAt date. If expiredAt is passed an empty Time, it will be set to 30 days from now.
func (Token) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface.
func (Token) ToRedisToken ¶
func (t Token) ToRedisToken() *RedisToken
ToRedisToken converts an auth token to RedisToken
func (*Token) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface.