当前位置: > > > > 响应标头和请求标头之间的 JWT 签名不同
来源:stackoverflow
2024-04-21 19:36:36
0浏览
收藏
哈喽!大家好,很高兴又见面了,我是的一名作者,今天由我给大家带来一篇《响应标头和请求标头之间的 JWT 签名不同》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!
问题内容
我正在实现一个使用 jwt 的身份验证 api,然后将其存储在 cookie 中。 cookie 在响应标头中设置正确,并且在请求标头中似乎也是如此。问题是响应中的 access_token
的签名与请求中的签名不同。因此,经过验证,它失败了。
正如您在上图中看到的,它们是不同的。我很困惑为什么它在请求标头中发生了变化。这是有意的行为吗?如果是这样,我该如何将其恢复到原来的签名?这就是我设置 cookie 的方式
atcookie := new(http.cookie) atcookie.name = "access_token" atcookie.value = "my-access-token"
我是这样读的
c.cookie("access_token").value
我正在使用 https://github.com/golang-jwt/jwt。我想我遵循了文档中的所有内容。我使用 echo 作为框架。我几个小时以来一直在尝试解决这个问题,如果有人能帮助我就好了。
更新 结果我只需要设置 cookie 路径。
atCookie.Path = "/"
虽然不确定这是否正确,但它能够将 cookie 保存在浏览器中。它根本没有向服务器发送任何 cookie。 cookie
标头值很混乱,因为它散布着来自其他选项卡的 cookie,因此增加了混乱。
正确答案
您显示的日志来自对您的登录端点的请求。您将 cookie 中的一个访问令牌发送到该端点,执行登录,然后发出新的访问令牌并将其设置在响应标头中。我认为这是一种完全正常的行为。
本篇关于《响应标头和请求标头之间的 JWT 签名不同》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注公众号!