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