В моей организации мы движемся к модульной архитектуре программного обеспечения. Мы все еще находимся на начальных этапах и в настоящее время работаем над модулем аутентификации пользователя (UA).Отдельный модуль аутентификации пользователей
Я ищу информацию о лучших практиках с точки зрения модуля аутентификации пользователей.
Моя текущая идея заключается в следующем:
- Клиент запрашивает модуль UA с данными для входа
- UA модуль проверяет регистрационные данные. Если они действительны, модуль UA создает & хранит токен доступа, связывая токен с уникальным идентификатором проверенного пользователя.
- Токен отправляется обратно клиенту. Клиент сохраняет токен.
- Всякий раз, когда клиент требует аутентификации, он запрашивает модуль UA с токеном. Модуль UA возвращает уникальный идентификатор пользователя, если токен действителен, или возвращает код ошибки, если токен недействителен.
Буду признателен за любую критику в отношении этих методов.
Мне также интересно узнать, как бороться с накоплением токенов. Очевидно, что если пользователь выбирает выход, токен удаляется.
Мое понятие состоит в том, что токены должны иметь даты истечения срока годности, связанные с ними, а рабочий процесс должен очищать эти токены с регулярным интервалом. Это правильный путь?
Прокомментируйте! Также приветствуются справочные документы.
Не будет ли у БД слишком много токенов, не очистив их? Вот где я смущен – connorbode
Я думаю, вы пропустили часть «один-к-одному», по сути, назначили всего один токен одному клиенту в любой момент времени. Таким образом, выпуск нового токена очищает старый токен, и у вас никогда не будет больше токенов, чем у вас есть клиенты. –