0
我有一个让我检查用户身份验证的中间件,这里是:检查用户身份验证
function checkAuth(req, res, next) {
if (!req.session.user_id) {
res.redirect('/login');
} else {
next();
}
}
我对此有两个问题;
它强大的用户验证检查?或者我应该在DB检查user.id像如下:
if (!req.session.user_id) { res.redirect('/login'); } else { User.findById(req.session.user_id, function (err, user) { if (!user) return res.redirect('/login'); else return next(); }) }
如果检查失败我重定向到登录页面:
res.redirect('/login');
,但如果我得到一个AJAX请求我应发送以下内容(我认为)
res.send(403, 'Permission denied');
那么如何检查一种请求并发送适当类型的响应? 这样做是否正确?
我听说HTTP_X_REQUESTED_WITH可以被代理删除,是吗? – Erik
是的。代理可以对HTTP请求执行任何操作。但除此之外,没有可靠的方法,因为任何东西都可以伪造/改变。另一种方法是检查“Content-Type”头,如果它询问“application/json”,则发送它的JSON数据。 –
谢谢。第一个问题是什么? – Erik