我使用的是哈皮框架的Node.js应用程式,以及哈皮框架本身自带的Cookie管理工具,我使用的身份验证这。JavaScript的重复饼干
框架,然后设置了一个名为会话cookie,以编码为base64一个JSON值。该域设置为example.com(未example.com)的情况
现在,当我尝试编辑这个cookie的客户端,通过执行以下操作
document.cookie = 'session=' + btoa(JSON.stringify(_decoded)) + "; path=/; domain=example.com";
这实际上设置了问题之所在复制的cookie域“.example.com的”
问我有没有Javascript来预先考虑点,我似乎无法摆脱它。
我猜想,这是因为这点,该cookie被复制。我如何设置没有它的域自动添加一个点?
编辑
我已经放弃试图删除前面的点,而是在尝试删除旧Cookie,然后创建一个新的。但我仍然以重复的饼干结束!
- 导航到/登录并输入登录信息
- 重定向到/账号和饼干由服务器设置(不带前导点)
- 执行JavaScript删除并重新创建的cookie
- 1饼干现在存在它有一个域
上述行为是好的前前导点,但是下面也发生了,这是坏
- 导航到/登录并输入登录信息
- 重定向到/账号和饼干由服务器设置(不带前导点)
- 导航到/例如
- 执行JavaScript删除并重新创建的cookie
- 2饼干现在存在,一个与领先的点(由JS创建),一个没有(由服务器创建)
我正在使用的代码是
API.Session = {
Encoded : function() { return document.cookie.replace(/(?:(?:^|.*;\s*)session\s*\=\s*([^;]*).*$)|^.*$/, "$1")},
Decoded : function() { return JSON.parse(atob(this.Encoded()))},
Update : function (_decoded) {
document.cookie = 'session=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = 'session=' + btoa(JSON.stringify(_decoded)) + "; path=/; domain=example.com;";
}
}
API.Helpers.ShowAdvancedOptions = function() {
var s = API.Session.Decoded()
s.ShowAdvancedOptions = true
API.Session.Update(s)
}
原来的Cookie是“会话= eyJpZCI6IjVhYWZhYjE2MDRiYTVjZmQ3NmIyNDhmZDM3ODNiNmE1In0 =”,在_decoded变量从以base64解码成JSON对象,然后添加一个属性,它 – Michael
@迈克尔衍生 - 见编辑,听起来好像东西正在打扰你 – DanteTheSmith
谢谢你,我稍微您的链接混淆。它我的问题 - 一个字一个字 - 在其他网站上,答案似乎不相关? – Michael