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 } }