Fetch the repository succeeded.
package token
import (
"time"
"github.com/golang-jwt/jwt/v4"
)
func (t *token) JwtSign(userId int64, userName string, expireDuration time.Duration) (tokenString string, err error) {
// The token content.
// iss: (Issuer)签发者
// iat: (Issued At)签发时间,用Unix时间戳表示
// exp: (Expiration Time)过期时间,用Unix时间戳表示
// aud: (Audience)接收该JWT的一方
// sub: (Subject)该JWT的主题
// nbf: (Not Before)不要早于这个时间
// jti: (JWT ID)用于标识JWT的唯一ID
claims := claims{
userId,
userName,
jwt.StandardClaims{
NotBefore: time.Now().Unix(),
IssuedAt: time.Now().Unix(),
ExpiresAt: time.Now().Add(expireDuration).Unix(),
},
}
tokenString, err = jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString([]byte(t.secret))
return
}
func (t *token) JwtParse(tokenString string) (*claims, error) {
tokenClaims, err := jwt.ParseWithClaims(tokenString, &claims{}, func(token *jwt.Token) (interface{}, error) {
return []byte(t.secret), nil
})
if tokenClaims != nil {
if claims, ok := tokenClaims.Claims.(*claims); ok && tokenClaims.Valid {
return claims, nil
}
}
return nil, err
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。