原代码:
func GenerateToken(userID uint) (string, error) {
// 设置令牌的过期时间为签发后的1小时
expirationTime := time.Now().Add(1 * time.Hour)
// 创建 JWT 令牌的标准声明
claims := JWTClaims{
UserID: userID,
StandardClaims: jwt.StandardClaims{
ExpiresAt: expirationTime.Unix(),
Issuer: "YourIssuerHere", // 根据您的应用更改
},
}
token := jwt.NewWithClaims(jwt.SigningMethodES384, claims)
return token.SignedString("yi-cao") // 使用您的密钥签名令牌
}
修改过后的代码:
func GenerateToken(userID uint) (string, error) {
// 设置令牌的过期时间为签发后的1小时
expirationTime := time.Now().Add(1 * time.Hour)
// 创建 JWT 令牌的标准声明
claims := JWTClaims{
UserID: userID,
StandardClaims: jwt.StandardClaims{
ExpiresAt: expirationTime.Unix(),
Issuer: "YourIssuerHere", // 根据您的应用更改
},
}
token := jwt.NewWithClaims(jwt.SigningMethodES384, claims)
// 生成一个 ECDSA 私钥
privateKey, err := ecdsa.GenerateKey(elliptic.P384(), rand.Reader)
if err != nil {
return "", err
}
// 使用 ECDSA 私钥签名令牌
return token.SignedString(privateKey)
}
原因:接口数据类型不对