Express Session + Angular:无法访问connect.sid cookie
有一些我真的不明白在这里:
我有expression在服务器端运行,会话初始化。
app.use(express.session({ secret: 'mySecret' }) }));
正如在这篇文章中提到的使用Connect混淆会话ID ,它发送一个connect.sid cookie到任何请求。
在客户端,我想读取这个cookie的内容,感觉不可能:
angular.module('myApp.controllers', ['ngCookies','myApp.services']) .controller('homeCtrl', function($scope, $cookies) { $cookies['test']='myValue'; console.log($cookies); });
当我运行这个,我得到这个对象在日志: Object {test: "myValue"}
,而如果我去在Chromedebugging器的资源选项卡,我可以看到两个cookies:
我究竟做错了什么 ?
从angular度访问服务器制作的cookie是不可能的?
谢谢
默认情况下,连接会话使用一个httpOnly cookie( 看这里 )。
当设置httpOnly标志时,读取cookie总是被禁止的。
尝试禁用httpOnly标志:
app.use(express.session({ secret: 'mySecret', cookie: { httpOnly: false } }));
要小心,你没有解决一个问题,但创造另一个,更糟糕的问题。 httpOnly标志通常用于防御XSS攻击。 有关更多详细信息,请参阅OWASP上的此链接: https : //www.owasp.org/index.php/HttpOnly
这里有趣的故事: http : //blog.codinghorror.com/protecting-your-cookies-httponly/
- Angular:如何将$ scopevariables传递给Node.js服务器。
- 离子通知/推送消息
- SPA(angular度)身份validation与OAuth2提供商的独立域上的API和身份validation服务器; Google,Facebook
- 如何使用MEAN堆栈在注册时显示失败消息
- 尽pipe存在服务,但不注入依赖项
- angular-phonecat教程 – web-server.js给node.js 404错误
- 如何确定我的angular网页的速度?
- 如何处理Angular $ http中的Express response.write()响应
- UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):