我正在尝试创建一个登录系统,遇到一些非常奇怪的问题。
页面代码:
const { email, password } = req.body;
if(!email ||!password) return res.status(400).send("Missing required fields");
let user = await client.fetchUser({ username: email });
if(!user) user = await client.fetchUser({ email });
if(!user) return res.render("login.ejs", {bot:client,message:"Invalid email or password",type:"error"});
const valid = await bcrypt.compare(password, user.account.password);
if(!valid) return res.render("login.ejs", {bot:client,message:"Invalid email or password",type:"error"});
req.session.user = {
username: user.account.username,
password: user.account.password
}
return res.redirect('/dashboard');
在
return res.status(200).send("Success");
。
我试过做await req.session.save()
,但那也不起作用。我也做了一些广泛的谷歌搜索,找不到答案。
请注意:这是一个POST请求
res.redirect
不自动保存会话。req.session.save()
不返回一个承诺,但需要一个回调函数:
req.session.save(function(err) {
if (err) res.status(500).send(err);
else res.redirect("/dashboard");
});