【发布时间】:2013-10-23 09:08:14
【问题描述】:
我有一个带有 Passport 模块的 nodejs express REST api 用于身份验证。 登录方法 (GET) 在标头中返回一个 cookie。当我从 Chrome 调用它时,它工作正常,我的 cookie 是在我的浏览器中设置的。
但是如果我通过 $http 从 Angularjs 调用它,cookie 没有设置。
Set-Cookie:connect.sid=s%3Ad7cZf3DSnz-IbLA_eNjQr-YR.R%2FytSJyd9cEhX%2BTBkmAQ6WFcEHAuPJjdXk3oq3YyFfI; Path=/; HttpOnly
如上所示,Set-Cookie 存在于 http 服务响应的标头中。
也许 HttpOnly 可能是这个问题的根源?如果是,我该如何更改?这是我的快速配置:
app.configure(function () {
app.use(allowCrossDomain);
app.use(express.bodyParser());
app.use(express.cookieParser())
app.use(express.session({ secret: 'this is a secret' }));
app.use(flash());
//passport init
app.use(passport.initialize());
app.use(passport.session());
app.set('port', process.env.PORT || 8080);
});
感谢您的帮助
【问题讨论】:
-
您能否提供调用 $http 进行登录的 Angular 方法。暂时不知道怎么回事