Я разрабатываю веб-приложение в стеке MEAN (MongoDB, Express, AngularJS и node.js). Я разрабатываю систему входа в систему и также буду защищать некоторые из маршрутов Angular, чтобы к ним могли обращаться только зарегистрированные пользователи. Я пытаюсь придумать, как лучше подойти к архитектуре этого.
Я думаю о текущем рабочем процессе:
- Пользователь регистрируется через форму AngularJS, которая отправляет http POST в конечную точку Express. Конечная точка проверяет пользователя против базы данных и отвечает на токен OAuth, а также на файл cookie. Оба они хранятся в базе данных mongo для последующей проверки.
- Как только AngularJS получит ответ на вход, он сохраняет полученный файл cookie с помощью ng файлов cookie и сохраняет токен OAuth в службе пользователя.
- Каждый раз, когда маршрут изменяется в AngularJS, служба User используется, чтобы убедиться, что файл cookie по-прежнему является законным, сравнивая его с файлами cookie в базе данных mongo (это будет вызов API с помощью Angular). это создало бы заметное отставание?)
- Когда пользователь нажимает "выйти из системы" или срок действия файла cookie истекает, маркер файла cookie и OAuth оба удаляются из базы данных и больше не будут действительны.
Имеет ли смысл этот подход? Является ли он безопасным и будет ли он относительно эффективным/быстрым в исполнении?