我现在正撞在墙上。我不明白为什么cookie表现得如此奇怪。
我正在尝试使用sessionId cookie将响应头发送回客户端。 如果我POST /登录cookie将不会设置,但如果我使用GET / setCookie创建一个随机端点,它就可以正常工作。任何人都知道为什么会发生这种情况
This does not work
-------------------
app.post('/login', function(req, res) {
var username = req.body.username;
var password = req.body.password;
var userID;
db.collection('users')
.find({username: username})
.then((userObj) => {
if(!userObj) {
res.status(401).send({ error: "Invalid Username/password" })
} else {
console.log("b")
userID = userObj[0]._id;
return Utils.comparePassword(userObj[0].password, password)
}
})
.then((isValidPassword) => {
if(!isValidPassword) {
res.status(401).send({ error: "Invalid username/Password" })
} else {
return db.collection('sessions')
.insert({ id: userID, sessionId: Utils.createSessionId() })
}
})
.then((userObj) => {
console.log("cookie?")
res.cookie('sessionId', userObj.sessionId, { path: '/' }).send("cookie set")
// res.set({'Set-Cookie':'sessionId=' + userObj.sessionId, path: '/'})
})
})
---------------
But this works
---------------
app.get('/setCookie', function(req, res) {
res.cookie('testCookie', 'test', { path: '/' })
res.end();
})
app.post('/setCookie', function(req, res) {
res.cookie('testCookie', 'test', { path: '/' })
res.end();
})