#node.js #authentication #oauth-2.0 #passport.js #express-session
#node.js #аутентификация #oauth-2.0 #passport.js #экспресс-сессия
Вопрос:
Я хочу проверить, есть ли у конкретного пользователя разрешения, которых нет у других пользователей.
Предполагая, что у меня есть список идентификаторов пользователей, имеющих это конкретное разрешение, можно ли просто сравнить req.user.id к идентификаторам в списке и, если есть совпадение, предоставить им разрешение? Может ли кто-нибудь отправить запрос и просто ввести идентификатор другого пользователя?
Я использую discord oauth2 с passport, passport-discord и express-session для аутентификации.
Ответ №1:
Это зависит от вашей реализации passportjs. Если это безопасно (т. Е. С Использованием подписанных токенов JWT и ваш секрет не просочился), кто-то не сможет подделать другой идентификатор, и вы можете доверять req.user.id
!
Комментарии:
1. Я не использую JWT, я использую express-session с файлом cookie с идентификатором сеанса, который также хранится в базе данных хранилища сеансов. Я сохраняю пользователей (с идентификатором) в своей базе данных и получаю пользователя по его req.user.id оттуда при десериализации. Это безопасно?
2. Да, если он правильно реализован, он безопасен!