Внедрение системы авторизации в React. JS & Node.JS - PullRequest
0 голосов
/ 02 февраля 2020

Мне нужно реализовать систему входа в стек MERN, в которой будет три типа входа. 1. Логин администратора 2. Вход студента 3. Вход преподавателя

Вход администратора будет иметь заранее заданные имя пользователя и пароль (например, admin & admin@123 соответственно), которые могут быть изменены при необходимости. Преподаватели и студенты будет иметь возможность войти в систему только в том случае, если администратор добавит нового студента или преподавателя со своей панели. Имя пользователя студента и преподавателя будет регистрационным номером колледжа, а пароль - датой рождения.

Все учебные пособия, которые я сталкивались с регистрацией и аутентификацией, и поскольку регистрация не является частью этого проекта, я хотел бы знать, в основном, как я должен go использовать эту функцию.

Я использую mongodb в качестве базы данных.

1 Ответ

1 голос
/ 02 февраля 2020

Здесь происходит несколько вещей:

  1. аутентификация: принятие и проверка имени пользователя и пароля
  2. авторизация: как только пользователь аутентифицируется, назначая ему соответствующий уровень привилегий (администратор, преподаватель, студент в вашем случае).
  3. регистрация: в вашей системе только администратор может регистрировать новых пользователей. Это отличается от некоторых систем, которые разрешают самостоятельную регистрацию. В соответствии с вашими требованиями это не так.

( Важный совет по безопасности Использовать дату рождения для пароля - очень плохая идея. Почему? В базе данных у него будет список имен и дат рождения. Они полезны для кражи личных данных ваших пользователей. Они также считаются информацией, позволяющей установить личность, и поэтому на них распространяются GDPR и Калифорнийский закон о защите прав потребителей. Вы не спрашивали об этом ....)

Давайте рассмотрим ваши требования по очереди.

1-аутентификация. Это простая схема имени пользователя / пароля. Для этого используйте модуль passport со своей стратегией local .

2 - Авторизация. При поиске пользователь также ищет свой уровень привилегий (снова администратор, преподаватель или студент). Паспорт кормит вашего пользователя сессионным поваром ie, чтобы он оставался в системе.

Прежде чем вы отобразите какую-либо страницу или примете какой-либо запрос API или пост-форму от пользователя, проверьте уровень авторизации. Если пользователю не разрешено использовать конкретную функцию, отправьте сообщение об ошибке 403 вместо того, чтобы показать страницу или принять форму.

3- Регистрация. Вам нужна форма для создания / замены / обновления / удаления пользователей (называется CRUD-формой). Эта форма должна быть доступна только вашему администратору.

Кстати, все это происходит на вашем узле / express сервере. Ваш реагирующий клиент должен просто передавать сгенерированный паспортом сессионный повар ie с каждым запросом, чтобы сервер мог искать пользователя для получения авторизации.

Размышление о ваших требованиях в такой структурированной манере должно помочь вам применять материал, который вы узнаете из различных онлайн-уроков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...