使用 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)