我用express写了一个应用程序,我想在全局中实现一个变量current_user,以确保用户是否登录。所以,我添加了一个中间件
app.use(require('./controller/user').auth_user);
在 user.js 中,我定义了一个名为 auth_user 的方法,使用 res.locals 设置一个全局本地 current_user。并设置 req.session.user=user。
exports.auth_user = function(req, res, next) {
if (req.session.user) {
res.locals('current_user', req.session.user);
return next();
} else {
var cookie = req.cookies['user_cookie'];
if (!cookie){
res.locals('current_user', "");
return next();
};
var auth_token = decrypt(cookie, 'user_session');
var auth = auth_token.split('\t');
var user_email=auth[3].toLowerCase();
User.findOne({'email': user_email},function(err, result) {
if(err) return next(err);
if (result) {
req.session.user = result;
res.locals('current_user', req.session.user);
return next();
}else{
return next();
}
});
}
};
所以,我给req放了一个user对象,调试的时候发现可以从req获取user.hashed_password。我觉得不安全。浏览器端的用户可以获取此信息吗?