我正在尝试将用户ID变量保存到cookie以在OAuth2流中使用,但是在从其他路由访问该cookie值时遇到一些问题。这是我的代码:
在我的app.js中:
var router = require("./routes/index");
app.use(session({
resave: true,
saveUninitialized: true,
secret: "secret key",
cookie: {
maxAge: 60000
}
}));
app.use(router, session);
在我的router.js中,所有路由都在其中,其中有一个'/ auth'路由,我在其中设置如下cookie:
req.session.sender_id = 'my cookie value';
现在,在router.js文件中,我尝试通过/callback
路由访问相同的cookie,如下所示:
console.log("cookie session: " + req.session.sender_id);
但是我总是得到undefined
的cookie。我想念什么?
感谢您的帮助!
添加更多我的路由器代码。这是我设置cookie的/ auth路由:
router.post("/action", function(req, res) {
var action = req.body.queryResult.parameters.action;
//-----AUTHENTICATION
if (action == "auth") {
res.set({
'Content-Type': 'application/json'
});
//set the user id cookie
req.session.sender_id = req.body.originalDetectIntentRequest.payload.data.sender.id;
console.log("cookie session: " + req.session.id);
console.log("cookie session: " + req.session.sender_id);
authenticate(req.body).then(function(result) {
console.log(result);
res.send(result);
});
...
基本上被调用的authenticate函数只是将用户添加到mongo db中,或者如果已经存在则进行更新-它不与会话交互。这是我尝试读取会话的/ callback路由:
router.get('/callback', function(req, res) {
console.log("cookie session: " + req.session.id);
console.log("sender_id: " + JSON.stringify(req.session));
...