I have a nodejs express REST api with Passport module for authentication.
A login method (GET) returns a cookie in the header. When I call it from Chrome it works fine, my cookie is set in my browser.
But if I call it through $http from Angularjs, the cookie is not set.
Set-Cookie:connect.sid=s%3Ad7cZf3DSnz-IbLA_eNjQr-YR.R%2FytSJyd9cEhX%2BTBkmAQ6WFcEHAuPJjdXk3oq3YyFfI; Path=/; HttpOnly
As you can see above, the Set-Cookie is present in the header of the http service response.
Perhaps HttpOnly may be the source of this problem? If yes, how can I change it? Here is my express configuration :
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);
});
Thank you for your help
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…