【发布时间】:2020-09-25 12:06:07
【问题描述】:
我正在尝试生成代码中提到的令牌,但尽管我正在使用它,但它在这一行给了我错误
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)
}
【问题讨论】:
-
我不是专家,但文档明确指定
interface{}不是[]byte的密钥。如果你用谷歌搜索你得到的错误,会有很多明显的匹配。培养一些基本的解决问题的技能会让你的生活更轻松。