当前位置: > > > > Gorilla 会话存储在 localStorage 中
Gorilla 会话存储在 localStorage 中
来源:stackoverflow
2024-04-21 14:09:35
0浏览
收藏
Golang不知道大家是否熟悉?今天我将给大家介绍《Gorilla 会话存储在 localStorage 中》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
问题内容
Gorilla 会话通过在 cookie 中以加密形式存储会话数据来很好地工作。
但是是否可以使用 localStorage 代替 cookie jar。端点将返回带有属性 session 的 JSON。前端代码会将 session 保存在 localStorage 中。 当查询端点时,session 将在标头中传递。
我可以使用 https://github.com/gorilla/securecookie 加密/解密/签名/验证会话
-
我想知道是否可以使用 localStorage 而不是我描述的方式使用 cookie? (我希望是的,但可能有理由不这样做)
-
如果是,这样的解决方案是否已经存在?
如果您想知道“为什么?”我希望明确地处理会话。当查询不同域上的 Web 服务时,并不总是存储 Cookie。
解决方案
首先,是的,这是可能的。
其次,这很容易做到。
您基本上需要做的就是将“cookie”传递到前端的本地存储中,而不是使用后端将会话存储到 cookie 中,而是通过javascript 的端点。
这就是我想做的有点,我的意思是我只是在这里使用伪代码,因为我以前从未使用过 go。 javascript 的实现程度更高,因为我拥有丰富的 javascript 经验,但您可能希望更改它,谁知道呢?
后端伪代码:
@get
@path("/getsession")
getsession () { return session; }
@post
@path("/setsession")
setsession (json) { session = validatesession(json); }
javascript 伪代码:
$.ajax(
url:"/getsession",
type: "GET",
success: function (data) {
var session = JSON.stringify(data);
localStorage.setItem("session", session);
}
);
var storedSession = localStorage.getItem("session");
if (storedSession != null) {
storedSession = JSON.parse(storedSession);
$.ajax(
url:"/setsession",
type: "POST",
data: storedSession,
success: function () {
console.log("success!");
}
);
}
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持米云!更多关于Golang的相关知识,也可关注米云公众号。
