存储在 localStorage 中的大猩猩会话
Gorilla sessions stored in localStorage
Gorilla session 通过在 cookie 中以加密形式存储 session 数据,效果很好。
但是是否可以使用 localStorage 而不是 cookie jar。端点将 return JSON 和 属性 session
。前端代码将在 localStorage 中保存 session
。
当查询端点时,将在 header.
中传递 session
我可以 encrypt/decrypt/sign/verify session 和 https://github.com/gorilla/securecookie
我想知道是否可以像我描述的那样使用 localStorage 而不是 cookie? (我希望是,但可能有理由不这样做)
如果是,这样的解决方案是否已经存在?
如果您想 "why?" 我希望明确处理 session。当查询不同域的 Web 服务时,并不总是存储 Cookie。
首先,是的,这是可能的。
其次,这很容易做到。
您本质上需要做的就是将'cookie'传递到前端的本地存储中,而不是使用后端将会话存储到一个 cookie,通过端点将其传回 JavaScript。
这就是我想 kinda 做的事情,我的意思是我只是在这里使用伪代码,因为我以前从来没有费心使用过 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!");
}
);
}
Gorilla session 通过在 cookie 中以加密形式存储 session 数据,效果很好。
但是是否可以使用 localStorage 而不是 cookie jar。端点将 return JSON 和 属性 session
。前端代码将在 localStorage 中保存 session
。
当查询端点时,将在 header.
session
我可以 encrypt/decrypt/sign/verify session 和 https://github.com/gorilla/securecookie
我想知道是否可以像我描述的那样使用 localStorage 而不是 cookie? (我希望是,但可能有理由不这样做)
如果是,这样的解决方案是否已经存在?
如果您想 "why?" 我希望明确处理 session。当查询不同域的 Web 服务时,并不总是存储 Cookie。
首先,是的,这是可能的。
其次,这很容易做到。
您本质上需要做的就是将'cookie'传递到前端的本地存储中,而不是使用后端将会话存储到一个 cookie,通过端点将其传回 JavaScript。
这就是我想 kinda 做的事情,我的意思是我只是在这里使用伪代码,因为我以前从来没有费心使用过 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!");
}
);
}