Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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 (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.
func (FileStore) Get ¶
Get tries to read the specified access token from file and writes to the supplied Token.
Get returns an NotFoundError if no such access token exists or such access token is expired. In the latter case the expired access token is still written onto the supplied Token.
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) *RedisStore
func (*RedisStore) Delete ¶
func (r *RedisStore) Delete(accessToken string) error
func (*RedisStore) Put ¶
func (r *RedisStore) Put(token *Token) error
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
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 ¶
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 ¶
func (Token) ToRedisToken ¶
func (t Token) ToRedisToken() *RedisToken