我有一個使用https協議與服務器通信的Angular Js應用程序。我使用cookie來存儲登錄用戶的名稱和jwt令牌。以下是我用來設置Cookie的代碼。HTTPS協議上的angularJs應用程序使用HttpOnly標誌Cookie
$cookies.putObject('token', token, {
expires: exp,
secure: true
});
爲了讓我的應用程序從安全團隊獲得許可,我需要爲cookie設置HttpOnly標誌。
當我打開我的網站的cookies我看到兩個項目
- connect.sid - 不知道該如何被創建的。我沒有做任何明確的創建這個cookie的 。
- 令牌 - 這是我創建的cookie來存儲用戶和他的jwt令牌。
我搜索了一下,做了必要的修改,在這些cookie上設置了HttpOnly標誌。它的工作原理,我可以看到兩個cookie都有HttpOnly標誌檢查。但是在這個改變之後,我的身份驗證停止了工作(即不能訪問cookie內的jwt集)。換句話說,我與後端的溝通被打破了。我使用下面的語句來讀取cookie。
$cookies.getObject('token')
我不得不還原一些更改以恢復到以前的狀態。現在,connect.sid cookie被設置爲HttpOnly標誌,而令牌cookie不是。我想知道這裏的問題是什麼。 Im是Angular Js的新成員,從未從事Cookie管理工作。任何幫助將不勝感激。
我確實爲我的令牌cookie從服務器設置了HttpOnly標誌。但在此之後,我的代碼無法訪問它的內容。我想知道這是否是預期的?或者我可能沒有閱讀餅乾「正確的方式」 –
是的,這是預期的行爲。 HttpOnly Cookie意味着不能被javascript讀取。 – Himanshu
謝謝@Himanshu。這有幫助 –