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:

chrome调试器中Ressources选项卡的屏幕截图

我究竟做错了什么 ?

从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/