gpt4 book ai didi

go - 生成 JWT token 时类型不匹配导致错误

转载 作者:IT王子 更新时间:2023-10-29 02:35:26 24 4
gpt4 key购买 nike

我正在尝试生成 JWT token ,但在将所有内容转换为字节数组时遇到了问题。

func GenerateToken(uid, cid int64) string{
header := `{"alg": "HS256","typ": "JWT"}`
header = base64.URLEncoding.EncodeToString([]byte(header))
var b structs.JwtBody
b.UID = uid
b.CID = cid
body, _ := json.Marshal(b)
key := []byte(secret)
h := hmac.New(sha256.New, key)
h.Write([]byte(header + "." + body))
signature := base64.URLEncoding.EncodeToString(h.Sum(nil))
jwt := header + "." + body + "." + signature
return jwt
}

我收到此行的错误,因为类型不匹配。

h.Write([]byte(header + "." + body))

我该如何解决这个问题?

最佳答案

h.Write 行更改为以下内容:

h.Write([]byte(header))
h.Write([]byte("."))
h.Write(body)

将散列计算拆分为三个单独的调用应该(稍微)快于将各个部分连接在一起并编写。

关于go - 生成 JWT token 时类型不匹配导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com