redisstorage

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option func(c *Storage)

func WithParentAccessExpiration

func WithParentAccessExpiration(key int64) Option

func WithSubTokenMapParentTokenKey

func WithSubTokenMapParentTokenKey(key string) Option

func WithTokenMapKey

func WithTokenMapKey(key string) Option

func WithUidMapParentTokenKey

func WithUidMapParentTokenKey(key string) Option

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

func (s *Storage) Clone() server.Storage

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) GetClient

func (s *Storage) GetClient(ctx context.Context, clientId string) (client server.Client, err error)

GetClient loads the client by id

func (*Storage) GetUidByParentToken added in v0.2.0

func (s *Storage) GetUidByParentToken(ctx context.Context, token string) (uid int64, err error)

func (*Storage) GetUidByToken added in v0.2.0

func (s *Storage) GetUidByToken(ctx context.Context, token string) (uid int64, err error)

func (*Storage) LoadAccess

func (s *Storage) LoadAccess(ctx context.Context, token string) (*server.AccessData, error)

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

func (s *Storage) LoadAuthorize(ctx context.Context, code string) (*server.AuthorizeData, error)

LoadAuthorize looks up AuthorizeData by a code. Client information MUST be loaded together. Optionally can return error if expired.

func (*Storage) LoadRefresh

func (s *Storage) LoadRefresh(ctx context.Context, token string) (*server.AccessData, error)

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 (s *Storage) RefreshToken(ctx context.Context, clientId string, pToken string) (tk *dto.Token, err error)

func (*Storage) RemoveAccess

func (s *Storage) RemoveAccess(ctx context.Context, token string) (err error)

RemoveAccess revokes or deletes an AccessData.

func (*Storage) RemoveAllAccess added in v0.2.0

func (s *Storage) RemoveAllAccess(ctx context.Context, token string) (err error)

RemoveAllAccess 通过token,删除自己的token,以及父token

func (*Storage) RemoveAuthorize

func (s *Storage) RemoveAuthorize(ctx context.Context, code string) (err error)

RemoveAuthorize revokes or deletes the authorization code.

func (*Storage) RemoveParentToken

func (s *Storage) RemoveParentToken(ctx context.Context, pToken string) (err error)

func (*Storage) RemoveRefresh

func (s *Storage) RemoveRefresh(ctx context.Context, code string) (err error)

RemoveRefresh revokes or deletes refresh AccessData.

func (*Storage) RenewParentToken

func (s *Storage) RenewParentToken(ctx context.Context, pToken dto.Token) (err error)

RenewParentToken 续期父级token

func (*Storage) SaveAccess

func (s *Storage) SaveAccess(ctx context.Context, data *server.AccessData) (err error)

SaveAccess writes AccessData. If RefreshToken is not blank, it must save in a way that can be loaded using LoadRefresh.

func (*Storage) SaveAuthorize

func (s *Storage) SaveAuthorize(ctx context.Context, data *server.AuthorizeData) (err error)

SaveAuthorize saves authorize data.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL