我使用的是哈皮框架的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