token

package
v0.0.0-...-3cb022a Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CacheModeCache = 1
	CacheModeRedis = 2

	TokenDelimiter = "_"
	EncryptKey     = "12345678912345678912345678912345"
	CacheKeyPrefix = "Token:"
	//CacheTimeout    = 10 * 60 * 1000 // 10分钟
	CacheTimeout    = 10 * 60 * 10000
	CacheMaxRefresh = CacheTimeout / 2
)

Variables

This section is empty.

Functions

func GetRequestToken

func GetRequestToken(r *ghttp.Request) (token string, err error)

* * GetRequestToken * @Description:获取请求header中的token,只支持http header中,Authorization: Bearer 类型 * @param r * @return token * @return err

Types

type MyCacheToken

type MyCacheToken struct {
	Token         string
	UserKey       string
	Uuid          string
	UserData      interface{}
	CreatedAt     int64 // Token 生成的时间
	NextFreshTime int64 // 下次token刷新时间, =0,一次性token
}

type MyRequestToken

type MyRequestToken struct {
	UserKey string
	Uuid    string
	Token   string
}

type MyToken

type MyToken struct {
	Timeout   int // 超时时间(毫秒)
	CacheMode int // 缓存类型: 内存1,redis2
}

func Instance

func Instance(name ...string) *MyToken

Instance 获取配置文件Token的配置信息

func (*MyToken) DecrypToken

func (m *MyToken) DecrypToken(ctx context.Context, token string) (*MyRequestToken, error)

* * decrypToken * @Description: 解密token。token的生成规则是base64(gaes.Encrypt(base64(userKey)+TokenDelimiter+uuid)) * @return *MyRequestToken * @return error

func (*MyToken) EncryptToken

func (m *MyToken) EncryptToken(ctx context.Context, userKey string) (*MyRequestToken, error)

*

  • EncryptToken
  • @Description:加密生成token. token的生成规则是base64(gaes.Encrypt(base64(userKey)+TokenDelimiter+uuid)): 其中TokenDelimiter默认为_; 为什么要base64(userKey),因为可能userKey包含_; 标准base64是使用 `数字`+`大小写字母`+`/`+`+`以及`=`组成 解释:为什么还要对token进行加解密?答:加密因为token携带了userKey信息,且便于过滤掉不合法token;
  • @param ctx
  • @param userKey 用户唯一标识
  • @return *MyRequestToken
  • @return error

func (*MyToken) GenerateToken

func (m *MyToken) GenerateToken(ctx context.Context, useKey string, data interface{}) (*MyCacheToken, error)

* * GenerateToken * @Description: 生成缓存token * @param useKey 唯一值 * @param data 存入Token的信息 * @return *MyCacheToken * @return error

func (*MyToken) RemoveCache

func (m *MyToken) RemoveCache(ctx context.Context, cacheKey string) error

* * RemoveCache * @Description: 删除缓存 * @param ctx * @param cacheKey * @return error

func (*MyToken) ValidToken

func (m *MyToken) ValidToken(ctx context.Context, token string) (myCacheToken *MyCacheToken, err error)

* * ValidToken * @Description: 验证token * @param ctx * @param token * @return MyCacheToken

Jump to

Keyboard shortcuts

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