Двухфакторная аутентификация в два шага

Я пытаюсь реализовать двухфакторную аутентификацию. Вход будет состоять из 2-х шагов:

  1. Имя пользователя и пароль предоставлены и проверены на правильность. Если они верны, а для учетной записи не включена 2FA, пользователь авторизуется (установлен cookie). Если они верны и 2FA включена, пользователь перенаправляется на страницу, где он должен ввести свой одноразовый пароль.

  2. Пользователь вводит свой одноразовый пароль и входит в систему, если он правильный.

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

Я использую flask и mod_auth_tkt (мод apache для аутентификации на основе файлов cookie), если это имеет значение.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
471
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Should I create an intermediate cookie that saves a secret (and also save that secret on the server, seems like a complicated way of doing it?).

Я думаю, вы могли бы использовать сеанс Flask для этого, просто не забудьте очистить его, если вход/двухфакторная аутентификация не удалась!

Документация: http://flask.pocoo.org/docs/1.0/quickstart/#sessions

Другие вопросы по теме