Documentation ¶
Index ¶
- type Option
- type Storage
- func (s *Storage) Clone() server.Storage
- func (s *Storage) Close()
- func (s *Storage) CreateClientWithInformation(id string, secret string, redirectURI string, userData interface{}) server.Client
- func (s *Storage) CreateParentToken(ctx context.Context, pToken dto.Token, uid int64, platform string) (err error)
- func (s *Storage) CreateToken(ctx context.Context, clientId string, token dto.Token, pToken string) (err error)
- func (s *Storage) GetClient(ctx context.Context, clientId string) (client server.Client, err error)
- func (s *Storage) GetUidByParentToken(ctx context.Context, token string) (uid int64, err error)
- func (s *Storage) GetUidByToken(ctx context.Context, token string) (uid int64, err error)
- func (s *Storage) LoadAccess(ctx context.Context, token string) (*server.AccessData, error)
- func (s *Storage) LoadAuthorize(ctx context.Context, code string) (*server.AuthorizeData, error)
- func (s *Storage) LoadRefresh(ctx context.Context, token string) (*server.AccessData, error)
- func (s *Storage) RefreshToken(ctx context.Context, clientId string, pToken string) (tk *dto.Token, err error)
- func (s *Storage) RemoveAccess(ctx context.Context, token string) (err error)
- func (s *Storage) RemoveAllAccess(ctx context.Context, token string) (err error)
- func (s *Storage) RemoveAuthorize(ctx context.Context, code string) (err error)
- func (s *Storage) RemoveParentToken(ctx context.Context, pToken string) (err error)
- func (s *Storage) RemoveRefresh(ctx context.Context, code string) (err error)
- func (s *Storage) RenewParentToken(ctx context.Context, pToken dto.Token) (err error)
- func (s *Storage) SaveAccess(ctx context.Context, data *server.AccessData) (err error)
- func (s *Storage) SaveAuthorize(ctx context.Context, data *server.AuthorizeData) (err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(c *Storage)
func WithTokenMapKey ¶
type Storage ¶
type Storage struct {
// contains filtered or unexported fields
}
func NewStorage ¶
func NewStorage(db *egorm.Component, redis *eredis.Component, logger *elog.Component, options ...Option) *Storage
NewStorage returns a new redis Storage instance.
func (*Storage) Clone ¶
Clone the Storage if needed. For example, using mgo, you can clone the session with session.Clone to avoid concurrent access problems. This is to avoid cloning the connection at each method access. Can return itself if not a problem.
func (*Storage) Close ¶
func (s *Storage) Close()
Close the resources the Storage potentially holds (using Clone for example)
func (*Storage) CreateClientWithInformation ¶
func (s *Storage) CreateClientWithInformation(id string, secret string, redirectURI string, userData interface{}) server.Client
CreateClientWithInformation Makes easy to create a osin.DefaultClient
func (*Storage) CreateParentToken ¶
func (s *Storage) CreateParentToken(ctx context.Context, pToken dto.Token, uid int64, platform string) (err error)
CreateParentToken 创建父级token
func (*Storage) CreateToken ¶
func (s *Storage) CreateToken(ctx context.Context, clientId string, token dto.Token, pToken string) (err error)
CreateToken 创建子系统token
func (*Storage) GetUidByParentToken ¶ added in v0.2.0
func (*Storage) GetUidByToken ¶ added in v0.2.0
func (*Storage) LoadAccess ¶
LoadAccess retrieves access data by token. Client information MUST be loaded together. AuthorizeData and AccessData DON'T NEED to be loaded if not easily available. Optionally can return error if expired.
func (*Storage) LoadAuthorize ¶
LoadAuthorize looks up AuthorizeData by a code. Client information MUST be loaded together. Optionally can return error if expired.
func (*Storage) LoadRefresh ¶
LoadRefresh retrieves refresh AccessData. Client information MUST be loaded together. 原本的load refresh,是使用refresh token来换取新的token,但是在单点登录下,可以简单操作。 1 拿到原先的sub token,看是否有效 2 再从sub token中找到对应parent token,看是否有效 3 刷新token 必须要这个信息用于给予access token,告诉oauth2老的token,用于在save access的时候,查询到ptoken,并处理老token的逻辑 AuthorizeData and AccessData DON'T NEED to be loaded if not easily available. Optionally can return error if expired
func (*Storage) RefreshToken ¶
func (*Storage) RemoveAccess ¶
RemoveAccess revokes or deletes an AccessData.
func (*Storage) RemoveAllAccess ¶ added in v0.2.0
RemoveAllAccess 通过token,删除自己的token,以及父token
func (*Storage) RemoveAuthorize ¶
RemoveAuthorize revokes or deletes the authorization code.
func (*Storage) RemoveParentToken ¶
func (*Storage) RemoveRefresh ¶
RemoveRefresh revokes or deletes refresh AccessData.
func (*Storage) RenewParentToken ¶
RenewParentToken 续期父级token
func (*Storage) SaveAccess ¶
SaveAccess writes AccessData. If RefreshToken is not blank, it must save in a way that can be loaded using LoadRefresh.
func (*Storage) SaveAuthorize ¶
SaveAuthorize saves authorize data.