Я создал функцию, которая ограничивает доступ к маршруту, проверяя, совпадает ли пользователь / пароль сохраненного сеанса с тем, что находится в базе данных
var checkAuth = function(req, res, next){
if(typeof(req.session.user) === 'undefined') {
req.session.user = { name: '', pass: '', loggedIn: false }
}
$R.user.validateLogin(req.session.user, function(err){
if(err) res.redirect('/login')
else {
req.session.user.loggedIn = true
next()
}
})
}
app.get('/restricted', checkAuth, function(req, response){
response.render('index')
})
Кажется, что он работает нормально, поскольку он перенаправляет на страницу / loginесли человек не прошел проверку подлинности, но сразу после перенаправления приложение закрывается с ошибкой
Ошибка: невозможно установить заголовки после их отправки.
У меня естьотследил ошибку до res.redirect ('/ login'), но не может понять, как исправить мою ошибку.
РЕДАКТИРОВАТЬ: Мой обработчик маршрута входа в систему
app.get('/login', function(req, response){
$R.page.addStyles(['forms','user/user'])
response.render('user/login')
})
app.post('/login', function(req, response){
$R.user.validateLogin(req.body, function(err, res){
if(err) response.end(JSON.stringify({error: err.message}))
else {
req.session.user = req.body
response.end(JSON.stringify({ok: true}))
}
})
})