使用 jwt-go 库 - 密钥类型无效
Using jwt-go Library - key is of invalid type
我正在尝试生成代码中提到的令牌,但是尽管我正在使用
,但它在这一行给我错误
tokenString, err := token.SignedString(mySigningKey) 因为 key 类型无效
有什么解决这个问题的建议吗?
谢谢
package main
import (
"fmt"
"github.com/dgrijalva/jwt-go"
"time"
)
var (
mySigningKey = []byte("secret")
)
func GenerateJWT() (string, error) {
token := jwt.New(jwt.SigningMethodES256)
claims := token.Claims.(jwt.MapClaims)
claims["authorized"] = true
claims["user"] = "ravi"
claims["exp"] = time.Now().Add(time.Minute + 30).Unix()
tokenString, err := token.SignedString(mySigningKey)
if err != nil {
fmt.Println(err)
fmt.Errorf("Something went wrong : %s", err.Error())
return "", err
}
return tokenString, nil
}
func main() {
tokenString, err := GenerateJWT()
if err != nil {
fmt.Println(err)
}
fmt.Println(tokenString)
}
此方法(SigningMethodES256)为ECDSA签名方法,需要配对密钥进行签名和验证,您的情况最好改为SigningMethodHS256
token := jwt.New(jwt.SigningMethodHS256)
我正在尝试生成代码中提到的令牌,但是尽管我正在使用
,但它在这一行给我错误tokenString, err := token.SignedString(mySigningKey) 因为 key 类型无效
有什么解决这个问题的建议吗?
谢谢
package main
import (
"fmt"
"github.com/dgrijalva/jwt-go"
"time"
)
var (
mySigningKey = []byte("secret")
)
func GenerateJWT() (string, error) {
token := jwt.New(jwt.SigningMethodES256)
claims := token.Claims.(jwt.MapClaims)
claims["authorized"] = true
claims["user"] = "ravi"
claims["exp"] = time.Now().Add(time.Minute + 30).Unix()
tokenString, err := token.SignedString(mySigningKey)
if err != nil {
fmt.Println(err)
fmt.Errorf("Something went wrong : %s", err.Error())
return "", err
}
return tokenString, nil
}
func main() {
tokenString, err := GenerateJWT()
if err != nil {
fmt.Println(err)
}
fmt.Println(tokenString)
}
此方法(SigningMethodES256)为ECDSA签名方法,需要配对密钥进行签名和验证,您的情况最好改为SigningMethodHS256
token := jwt.New(jwt.SigningMethodHS256)