Есть простой сервис авторизации, который выдает, проверяет JWT, сохраняет юзеров в бд. Хочу добавить возможность 2fa, например код OTP из иприложения или на почту (пускай на почту для примера). Сервис в виде API.
Происходит все элементарно - юзер вводит данные логина на фронте, фроонт отправляет на апи, апи возвращает ответ. Как правильно добавлять двухфактор в такую схему? Нужно какое-то промежуточное состояние - т.е. юзер залогинился, но не ввел код? Как его хранить принято? Сессии нет - JWT. Вообщем, как это имплементируется обычно в подобных сервисах?
Все прмежуточные состояния - это сторона клиента + мат.алгоритм + таймер/код.
Нужно сохранять порядок действий и обновлять верификационный код (при необходимости) без повторной авторизации.
какая еще сторона клиента) есть третье апи, с которого запрашиваются данные на клиент. я про клиент ни слова не спрашиваю вообще. про порядок действий подробнее - об этом и вопрос.
bozuriciyu, Я не отрицаю твою способность так мыслить и для тебя - это твоя истина.
Но чтобы достичь совершенства, ты должен больше изучать и меньше глумиться.
И только тогда, ты получишь ответ на свой вопрос.
xmoonlight, мой вопрос элементарный, меня интересуют реальный опыт и практики, а не шизоидный бред.
Если надо развежвать вопрос, то ок - вот я, например, обозначил в бд юзера f2a: true, дальше после логина я могу например прихуярить какой-то промежуточный флаг, до того момента как он не введет пароль. Выглядит это убого. Очевидно что я спрашиваю об этом, а не этот бред, что написан.
Ясен хрен что я не спрашиваю ни о клиенте, ни о деталях имплементации самого OTP, что прямо и написано.
xmoonlight, есть другие предложения? Вот юзер ввел логин:пасс и попал на страницу ввода отп-пароля. Что дальше? Он может ввести пароль сразу, а может не ввести. Может обновить страницу. И нельзя отдавать данные пока он не введет второй пароль. Как делать по другому, не вводя промежуточное состояние помимо залогинен/не залогинен, если это бред?
bozuriciyu, через формирование корректных данных за заданный промежуток времени.
Например, ввести пин-код за 30 секунд при TOTP.
На всём промежутке времени процесса авторизации, состояния всех клиентских запросов и ответов - хранятся в памяти js на клиенте.
А при выполнении запроса - обмен данными происходит как через клиента, так и минуя клиента - межсерверный.
xmoonlight, вы не понимаете вопроса, ни моих комментов, наверное. Токен, когда отдавать? Все что меня интересует!!! Память на клиенте вообще не при делах. Какие-то межсерверы. Бред.
Токен-то дополнительный вводить? Или все-таки делать промежуточный флаг?))) КОГДА ТОКЕН ДОСТУПА JWT ОТДАВАТЬ, БЛ*ТЬ?? И при чем тут клиент, хаха)) Вы серьезно, ощущение что понятия не имеете что пишете, просто набор умных слов.