shaoyongjun adfc73df29 to:sync
2024-09-30 22:49:21 +08:00

37 lines
926 B
Go

package xjwt
import (
"github.com/golang-jwt/jwt/v5"
"mylomen_server/common/config"
"mylomen_server/common/dto"
"time"
)
func GenJwtToken(claims dto.LoginTokenVo) string {
mySigningKey := []byte(config.Instance.MyServer.JwtSigningKey)
claims.Issuer = "mylomen.com"
claims.IssuedAt = jwt.NewNumericDate(time.Now())
//加密
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
ss, _ := token.SignedString(mySigningKey)
return ss
}
func ParseJwtToken(jwtToken string) (*dto.LoginTokenVo, error) {
if jwtToken == "" || len(jwtToken) > 256 {
return nil, nil
}
//parse
parseToken, err := jwt.ParseWithClaims(jwtToken, &dto.LoginTokenVo{}, func(token *jwt.Token) (interface{}, error) {
return []byte(config.Instance.MyServer.JwtSigningKey), nil
})
//check
if userClaims, ok := parseToken.Claims.(*dto.LoginTokenVo); ok && parseToken.Valid {
return userClaims, nil
} else {
return nil, err
}
}