gpt4 book ai didi

node.js - 重定向到 ExpressJS 中的另一个页面后, session 未定义

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:51 25 4
gpt4 key购买 nike

我想做的是

-> 使用发送到“/check_user”的逻辑形式

-> check_user 具有生成 session 的逻辑,并且完美地创建了 session

-> 然后它重定向到受 verify() 函数限制的“/chat”

-> verify 检查 session 是否持续存在(此时 session 由于某种原因始终未定义)

--> check_user 确实创建了 session 并保留在那里,但当重定向到“/chat”并点击验证时, session 就会丢失。

这是我正在使用的代码片段,我没有使用任何模板引擎,而是使用纯 HTML 文件。非常感谢任何帮助。谢谢!

app.use(express.static(__dirname + '/public'));

app.get('/login', function (req, res) {
res.sendfile(__dirname + '/public/index.html');
});

app.get('/chat', verify, function(req, res){
res.sendfile(__dirname + '/public/chat.html');
});


// when login form is posted to check_user, handle the username and passwords validation.
app.post('/check_user', function(req, res){

req.session.regenerate(function(){
req.session.user = "test";

//debugging codes debug code 1
console.log("3");
console.log(req.session.user);
//End debugging codes

res.redirect('/chat');
});

});

函数验证(req,res,下一个){

  console.log(req.session.user);

if (req.session.user) {

console.log("1");//debug code 2

next();

} else {

console.log("2");//debug code 3

req.session.error = 'Access denied!';

res.redirect('/login');

}
};

最佳答案

已修复!它。问题是我在 ajax 提交后使用 res.render 。我在 ajax 提交上使用了 window.location 并且它有效。

我发现的另一件事是,
删除这个关闭使我的 session 在我的应用程序中持续存在

req.session.regenerate(function(){

});

关于node.js - 重定向到 ExpressJS 中的另一个页面后, session 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20074796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com