2013-07-21 3 views
1

У меня есть node.js и с паспортом, используя passport.js документы.Паспорт NodeJS: возможно ли аутентифицировать роли?

Мой вопрос: могу ли я аутентифицироваться по-другому, используя LocalStrategy для разных ролей?

У меня есть обычные пользователи и администраторы, и, конечно, некоторые страницы предназначены только для администраторов.

ответ

4

Я был в пяти минутах от ответа на свой вопрос.

Данные пользовательского объекта можно найти в req.user с паспортом.

так что я могу использовать этот

if (req.user.role == "Admin") { 
    // render page here 
} else { 
    // redirect somewhere else 
} 
1

Ваших должны проектировать свою базу данных таким образом, где вы можете помнить, если пользователь является администратором или обычными пользователями и т.д. (то есть вам придется сделать данные сохраняются).

Теперь, как использовать эту локальную стратегию? Я действительно сомневаюсь, что вам это нужно в локальной стратегии, если вы не ищете своего пользователя для входа в систему каждый раз, когда он запрашивает новую страницу со своим именем пользователя и паролем. Вы должны использовать сеансы, вы можете добавить специальный специальный req.role в пользовательский метод де-сериализации.

Теперь для каждого просмотра вам нужно проверить, разрешает ли ему роль пользователя просматривать его или нет? Вы можете определить настраиваемую стратегию, которая проверяет это для вас? В этой стратегии просто проверьте req.user.role и разрешите определенную роль на странице.

Надеюсь, это поможет вам!

Смежные вопросы