这里有些我真的不明白的东西:
我已经表示在服务器端运行,并初始化了 session 。
app.use(express.session({
secret: 'mySecret'
})
}));
如本文Confusion over session IDs using Connect所述,它会向任何请求发送一个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"}
,而如果我转到Chrome调试器中的ressources选项卡,则可以看到两个cookie:我究竟做错了什么 ?
是否可以从angular访问服务器制造的cookie?
谢谢
最佳答案
默认情况下,连接 session 使用httpOnly cookie(look here)。
设置httpOnly标志时,始终禁止读取cookie。
尝试禁用httpOnly标志:
app.use(express.session({
secret: 'mySecret',
cookie: { httpOnly: false }
}));