✨ 新增几大中心功能
This commit is contained in:
@@ -14,6 +14,11 @@ type JWT struct {
|
||||
SigningKey []byte
|
||||
}
|
||||
|
||||
const (
|
||||
JWTAudienceAdmin = "GVA_ADMIN"
|
||||
JWTAudienceApp = "GVA_APP"
|
||||
)
|
||||
|
||||
var (
|
||||
TokenValid = errors.New("未知错误")
|
||||
TokenExpired = errors.New("token已过期")
|
||||
@@ -29,14 +34,14 @@ func NewJWT() *JWT {
|
||||
}
|
||||
}
|
||||
|
||||
func (j *JWT) CreateClaims(baseClaims request.BaseClaims) request.CustomClaims {
|
||||
func (j *JWT) CreateClaimsWithAudience(baseClaims request.BaseClaims, aud string) request.CustomClaims {
|
||||
bf, _ := ParseDuration(global.GVA_CONFIG.JWT.BufferTime)
|
||||
ep, _ := ParseDuration(global.GVA_CONFIG.JWT.ExpiresTime)
|
||||
claims := request.CustomClaims{
|
||||
BaseClaims: baseClaims,
|
||||
BufferTime: int64(bf / time.Second), // 缓冲时间1天 缓冲时间内会获得新的token刷新令牌 此时一个用户会存在两个有效令牌 但是前端只留一个 另一个会丢失
|
||||
RegisteredClaims: jwt.RegisteredClaims{
|
||||
Audience: jwt.ClaimStrings{"GVA"}, // 受众
|
||||
Audience: jwt.ClaimStrings{aud}, // 受众
|
||||
NotBefore: jwt.NewNumericDate(time.Now().Add(-1000)), // 签名生效时间
|
||||
ExpiresAt: jwt.NewNumericDate(time.Now().Add(ep)), // 过期时间 7天 配置文件
|
||||
Issuer: global.GVA_CONFIG.JWT.Issuer, // 签名的发行者
|
||||
@@ -45,6 +50,14 @@ func (j *JWT) CreateClaims(baseClaims request.BaseClaims) request.CustomClaims {
|
||||
return claims
|
||||
}
|
||||
|
||||
func (j *JWT) CreateAdminClaims(baseClaims request.BaseClaims) request.CustomClaims {
|
||||
return j.CreateClaimsWithAudience(baseClaims, JWTAudienceAdmin)
|
||||
}
|
||||
|
||||
func (j *JWT) CreateAppClaims(baseClaims request.BaseClaims) request.CustomClaims {
|
||||
return j.CreateClaimsWithAudience(baseClaims, JWTAudienceApp)
|
||||
}
|
||||
|
||||
// CreateToken 创建一个token
|
||||
func (j *JWT) CreateToken(claims request.CustomClaims) (string, error) {
|
||||
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
|
||||
|
||||
Reference in New Issue
Block a user