新增几大中心功能

This commit is contained in:
Administrator
2026-04-23 15:29:07 +08:00
parent 5c2a146a44
commit c6354ee065
123 changed files with 13074 additions and 229 deletions

View File

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