这里有些我真的不明白的东西:

我已经表示在服务器端运行,并初始化了 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 }
}));

10-06 08:23
查看更多