我在登录后路由器中有一个db操作,当db操作回调成功时,我得到了一个用户名值,以及如何将这个用户名传递给" /"路由器?
router.post('/login', (req, res)=> {
var username = req.body.username;
var password = common.md5(req.body.password + common.MD5_SUFFIX);
db.query(`SELECT * FROM admin_table WHERE username='${username}'`, (err, data)=> {
if (err) {
console.log(err);
res.status(500).send('database error').end();
} else {
if (data.length == 0) {
res.status(404).send('no this admin').end();
} else {
if (data[0].password == password) {
req.session['admin_id']=data[0].ID;
res.redirect('/');
} else {
res.status(404).send('This password is not incorrect!').end();
}
}
}
});
});
router.get('/login',(req,res)=>{
res.render('admin/login.ejs',{layout:'/admin/layout.ejs',title:'Login'});
});
router.get('/',(req,res)=>{
res.render('admin/index.ejs',{layout:'/admin/layout.ejs',title:'Index',username:username});
});
比如在后登录路由器中,我得到的用户名是" ollie",当db操作结束时,路由器重定向" /",我可以得到用户名" ollie& #34;在" /"路由器。
答案 0 :(得分:0)
最简单的方法是使用会话。例如。在配置快速应用程序的地方,请使用:
if (data[0].password == password) {
req.session['admin_id']=data[0].ID;
req.session.username = data.username;
res.redirect('/');
}
然后你可以访问它,例如
router.get('/route', (req, res) => {
console.log(req.session && req.session.username);
res.end(`Hi ${req.session && req.session.username}`)
});
请拜托,请不要在任何认证方案中使用md5,即使是示例代码。