代码拉取完成,页面将自动刷新
package saHttp
import (
"encoding/json"
"gitee.com/saxon134/go-utils/saData/saError"
"github.com/dgrijalva/jwt-go"
"time"
)
func JwtGenerate(ptr interface{}, key string) (j string, err error) {
var bAry []byte
bAry, err = json.Marshal(ptr)
if err != nil {
return
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"jti": string(bAry),
"iat": time.Now().Unix(), //nbf生效时间
"edt": time.Now().Unix() + int64(time.Hour*240), //edt失效时间,尚未做失效控制
})
j, err = token.SignedString([]byte(key))
return
}
func JwtParse(token string, key string, ptr interface{}) (err error) {
var (
t *jwt.Token
claims jwt.MapClaims
ok bool
)
t, err = jwt.Parse(token, func(token *jwt.Token) (i interface{}, e error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return
}
return []byte(key), nil
})
if err != nil {
return saError.Error{Code: saError.UnAuthedErrorCode}
}
claims, ok = t.Claims.(jwt.MapClaims)
if !ok || !t.Valid {
return saError.Error{Code: saError.UnAuthedErrorCode}
}
value := claims["jti"]
var bAry []byte
if bAry, ok = value.([]byte); ok == false {
var str string
if str, ok = value.(string); ok == true {
bAry = []byte(str)
}
}
err = json.Unmarshal(bAry, ptr)
if err != nil {
return saError.Error{Code: saError.UnAuthedErrorCode}
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。