Для аутентификации я использую pass.js. Мое требование состоит в том, что никто не должен иметь доступ к определенной странице (например, '/limited'), если вы не вошли в систему.
Прямо сейчас, в моем приложении, каждый может получить доступ к "localhost: 3000/#/limited" url напрямую.
Я могу остановить это и разрешить только зарегистрированным пользователям доступ к странице с помощью решения Rorschach120 в Redirect на всех маршрутах для входа в систему, если он не аутентифицирован.
Но это делается на стороне клиента и не является безопасным, потому что любой может получить доступ к этому коду из браузера.
Так что мне нужно, чтобы запрос на мою страницу отправлялся на сервер, я попробовал решение moka в разделе Как узнать, зарегистрирован ли пользователь в файле passport.js? :
В app.js:
app.get('/restricted', loggedIn, function(req, res, next) {
// req.user - will exist
// load user orders and render them
});
где функция loggedIn() проверяет, вошел ли пользователь в систему или нет.
Но это промежуточное ПО НИКОГДА не звонит, и каждый может получить доступ к странице с ограниченным доступом. Что я могу сделать, чтобы это вызвало?
Я новичок в AngularJS и NodeJS. Я здесь что-то не так? Любая помощь будет оценена.
С этой целью вы можете использовать промежуточное ПО.
app.get('/secure-route', secureMiddleware, myMethod)
let secureMiddleware = function(req, res, next) {
authCheck(...)
.then(function(result) {
// pass
next()
})
.catch(function(err) {
res.status(401).json({
code: 401,
message: 'restricted route'
})
})
}