@WarriorKodeK

Как сделать 2 factor authentication?

Всем привет. На проекте понадобилось сделать 2 факторную авторизацию.
Как это происходить (имеется ввиду взаимодействия фронта и бека)?

То есть по моей логике:
Юзер вводит пароль и логин нажимает кнопку подвердить, эти данные отправляются на бек, на беке генерируется какой-то ключ и высылается юзеру на указанную почту, он вставляет этот ключ в инпут, жмёт потвердить, этот ключ отправляется на бек и сверяется с тем что был сгенерирован, если все хорошо пускаем юзера в аппку.

Если есть какие-то статьи или примеры скиньте пожалуйста.

Cтек технологий:
  • Front-end: React & Redux
  • Back-end: PHP
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
Avrong
@Avrong
Юзер вводит пароль и логин нажимает кнопку подвердить, эти данные отправляются на бек

Простейшая форма и обработчик.

на беке генерируется какой-то ключ

Функция для рандомной генерации ключа. Например, так, но лучше написать свою.

и высылается юзеру на указанную почту

Так или так, или <любой другой способ для отправки сообщения>.

жмёт потвердить, этот ключ отправляется на бек и сверяется с тем что был сгенерирован

Сгенерированный ключ нужно поместить в какое-нибудь хранилище типа БД (и задать параметры истечения срока кода, владельца кода, количества попыток ввода) и сверять при вводе пользователем.

жмёт потвердить, этот ключ отправляется на бек и сверяется с тем что был сгенерирован

Снова форма и обработчик.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@l1l1l1
Используйте лучше 2FA от Google: https://www.google.ru/landing/2step/

Почту могут взломать (у большинства пользователей пароли совпадают, да же если вы генерируете пароль многие меняют его на привычный), а в случае с 2FA от Google этот вариант исключен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы