В настоящее время я создаю приложение Node с Express и Passport и использую это промежуточное ПО на моем основном сервере. js файл:
// Function to protect urls
function isProtected(req, res, next) {
if (req.isAuthenticated()) {
// User is logged in
res.locals.user = req.user;
return next();
}
// User is not logged in. Redirect to login.
res.redirect('login');
}
app.use('/protected_path', isProtected, protectedRouter);
Мои вопросы нацелены на эту строку:
res.locals.user = req.user;
Пользовательский объект передается в res.locals, поэтому его можно использовать для заполнения таких полей, как имя, роль пользователя, дата регистрации, ...
Есть ли способ, которым пользователь / веб-сайт / Программа api (например, Postman) может получить доступ к переменным res.locals? Внутри объекта req.user могут быть какие-то конфиденциальные данные, и я просто хочу использовать res.locals для получения данных, которые будут отображаться в представлениях, таких как страница профиля.
Я мог бы просто передать необходимое
Мой последний подход заключался в том, чтобы «занести в черный список» ненужные переменные, описанные здесь: SO: Как опустить определенные c свойства из объекта в JavaScript
Может ли пользователь получить доступ к переменным res.locals и, следовательно, будет ли это иметь отношение к безопасности? В противном случае я бы предпочел свое текущее решение.