代码拉取完成,页面将自动刷新
package tokenhelper
import (
"errors"
"strings"
"time"
"gitee.com/fkil555/gin-extend/conf"
"github.com/golang-jwt/jwt/v4"
)
type GenerateJwtStruct struct {
Uid int64
ExtendInfo string
jwt.RegisteredClaims
}
func (g *GenerateJwtStruct) GenerateJwtToken() (string, error) {
if len(conf.GEConf.AppConfig.TokenAccessSecret) <= 0 || conf.GEConf.AppConfig.TokenAccessExpire <= 0 {
return "", errors.New("token access secret or token access expire invalid")
}
tokenVal := GenerateJwtStruct{
Uid: g.Uid,
ExtendInfo: g.ExtendInfo,
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Duration(conf.GEConf.AppConfig.TokenAccessExpire) * time.Second)),
},
}
claims := jwt.NewWithClaims(jwt.SigningMethodHS256,
tokenVal,
)
token, err := claims.SignedString([]byte(conf.GEConf.AppConfig.TokenAccessSecret))
token = "Bearer " + token
return token, err
}
func ParseJwtToken(tokenStr string) (*GenerateJwtStruct, error) {
if len(tokenStr) > 7 && strings.ToUpper(tokenStr[0:7]) == "BEARER " {
tokenStr = tokenStr[7:]
}
jwtStruct := GenerateJwtStruct{}
_, err := jwt.ParseWithClaims(
tokenStr,
&jwtStruct,
func(token *jwt.Token) (interface{}, error) {
return []byte(conf.GEConf.AppConfig.TokenAccessSecret), nil
},
)
if err == nil {
return &jwtStruct, nil
} else {
return nil, err
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。