52 lines
1.2 KiB
Go

/*
* @desc:token功能
* @company:云南奇讯科技有限公司
* @Author: yixiaohu<yxh669@qq.com>
* @Date: 2022/9/27 17:01
*/
package token
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
"github.com/tiger1103/gfast-token/gftoken"
"github.com/tiger1103/gfast/v3/internal/app/common/consts"
commonModel "github.com/tiger1103/gfast/v3/internal/app/common/model"
"github.com/tiger1103/gfast/v3/internal/app/wechat/service"
"github.com/tiger1103/gfast/v3/library/liberr"
)
type sToken struct {
*gftoken.GfToken
}
func New() service.IGfToken {
var (
ctx = gctx.New()
opt *commonModel.TokenOptions
err = g.Cfg("wechat").MustGet(ctx, "gfToken").Struct(&opt)
fun gftoken.OptionFunc
)
liberr.ErrIsNil(ctx, err)
if opt.CacheModel == consts.CacheModelRedis {
fun = gftoken.WithGRedis()
} else {
fun = gftoken.WithGCache()
}
return &sToken{
GfToken: gftoken.NewGfToken(
gftoken.WithCacheKey(opt.CacheKey),
gftoken.WithTimeout(opt.Timeout),
gftoken.WithMaxRefresh(opt.MaxRefresh),
gftoken.WithMultiLogin(opt.MultiLogin),
gftoken.WithExcludePaths(opt.ExcludePaths),
fun,
),
}
}
func init() {
service.RegisterGToken(New())
}