猿问

是否可以在 Go 中访问存储在客户端本地存储中的 JWT 令牌?

我已经在后端实现了一个 SPA 应用程序,并且使用 angular 很容易授权存储在浏览器本地存储中的令牌,但在前端我使用服务器来呈现 html。

在 Go 中,在 HTTP 请求处理程序上,从服务器,如何获取浏览器的 localstorage / sessiontorage 以检索令牌、验证它并在响应中呈现允许的内容?

这甚至可能还是我必须使用会话?

我在想也许 http.client 有某种我看不到的方式,这可以帮助完成工作吗?

编辑 如果不可能,我发现了这个:http : //www.gorillatoolkit.org/pkg/securecookie - 我试着用谷歌搜索一下,但我想绝对确定这个 hmac 验证使这个解决方案至少与 JSON Web 令牌一样安全?

如果确实有人可以提出为什么应该在会话中使用服务器资源的好论点,请与我分享这个(顺便说一句,我不关心旧浏览器 - 只关心性能和尽可能利用客户端,只要因为安全没有受到损害)


慕侠2389804
浏览 178回答 1
1回答

慕容森

有些人对你的问题投了反对票,所以把事情弄清楚可能会有所帮助:后端是生成 html 并将其发送到用户服务器端的东西;前端是最终用户在他/她的浏览器(包括 javascript)中看到的 - 客户端。浏览器的本地存储位于frontend,因此无法被 访问backend。您可以使用 cookie(它们存储在客户端,但发送到服务器端,反之亦然) - 但就目前而言。securecookie 是一种在客户端存储 cookie 的方式,除了您自己之外,任何人都无法更改/查看它们 - 因为它是使用只有您(应该)知道的“秘密”加密的。会话数据的优点是不需要验证它是否是伪造的——你是把数据放在那里的人,如果有什么东西/某人确实伪造了会话数据,那么你就会遇到更大的问题。您还可以存储您不希望最终用户/客户知道的内容。使用加密 cookie 是实现此目的的替代方法。请注意,您也可以使用会话数据来存储大的东西——如果有一个(可能有效但)奇怪的理由来为最终用户存储 500MB 的会话数据 blob,你不想将那 500MB 发送到最后——用户立即。会话数据保留在您的服务器上。
随时随地看视频慕课网APP

相关分类

Go
我要回答