2

我正在尝试生成代码中提到的令牌,但是尽管我正在使用它,但它在这条线上给了我错误

tokenString, err := token.SignedString(mySigningKey) as 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)
}

4

1 回答 1

2

此方法(SigningMethodES256)是 ECDSA 签名方法,您需要对密钥进行签名和验证,在您的情况下,最好更改为 SigningMethodHS256

    token := jwt.New(jwt.SigningMethodHS256)
于 2020-06-07T00:03:39.977 回答