我有一个Angular Js应用程序,使用https协议与服务器通信。我使用cookie来存储登录用户的名字和jwt令牌。以下是我用来设置cookie的代码。
$cookies.putObject('token', token, {
expires: exp,
secure: true
});
为了从安全团队获得我的应用程序许可,我需要为cookie设置HttpOnly标志。
当我打开网站的cookies时,我看到两个项目
我用Google搜索并做了必要的更改,在这些Cookie上设置了HttpOnly标志。它工作,我可以看到两个cookie都有HttpOnly标志检查。但在此更改后,我的身份验证停止工作(即我无法访问cookie中的jwt集)。换句话说,我与后端的沟通被打破了。我使用下面的语句来读取cookie。
$cookies.getObject('token')
我不得不恢复一些更改以恢复到以前的状态。现在,connect.sid cookie设置为HttpOnly标志而令牌cookie不设置。我想知道这里一定是什么问题。我是Angular Js的新手,之前从未参与过Cookie管理。任何帮助将不胜感激。
答案 0 :(得分:6)
HttpOnly
Cookie意味着无法从JavaScript等脚本语言访问它。所以在JavaScript中绝对没有API可用于获取/设置cookie的HttpOnly属性,否则会破坏HttpOnly的含义。
只需从服务器设置'令牌'cookie即可。