Здесь происходит несколько вещей:
- аутентификация: принятие и проверка имени пользователя и пароля
- авторизация: как только пользователь аутентифицируется, назначая ему соответствующий уровень привилегий (администратор, преподаватель, студент в вашем случае).
- регистрация: в вашей системе только администратор может регистрировать новых пользователей. Это отличается от некоторых систем, которые разрешают самостоятельную регистрацию. В соответствии с вашими требованиями это не так.
( Важный совет по безопасности Использовать дату рождения для пароля - очень плохая идея. Почему? В базе данных у него будет список имен и дат рождения. Они полезны для кражи личных данных ваших пользователей. Они также считаются информацией, позволяющей установить личность, и поэтому на них распространяются GDPR и Калифорнийский закон о защите прав потребителей. Вы не спрашивали об этом ....)
Давайте рассмотрим ваши требования по очереди.
1-аутентификация. Это простая схема имени пользователя / пароля. Для этого используйте модуль passport со своей стратегией local .
2 - Авторизация. При поиске пользователь также ищет свой уровень привилегий (снова администратор, преподаватель или студент). Паспорт кормит вашего пользователя сессионным поваром ie, чтобы он оставался в системе.
Прежде чем вы отобразите какую-либо страницу или примете какой-либо запрос API или пост-форму от пользователя, проверьте уровень авторизации. Если пользователю не разрешено использовать конкретную функцию, отправьте сообщение об ошибке 403 вместо того, чтобы показать страницу или принять форму.
3- Регистрация. Вам нужна форма для создания / замены / обновления / удаления пользователей (называется CRUD-формой). Эта форма должна быть доступна только вашему администратору.
Кстати, все это происходит на вашем узле / express сервере. Ваш реагирующий клиент должен просто передавать сгенерированный паспортом сессионный повар ie с каждым запросом, чтобы сервер мог искать пользователя для получения авторизации.
Размышление о ваших требованиях в такой структурированной манере должно помочь вам применять материал, который вы узнаете из различных онлайн-уроков.