Задать вопрос
@0x80070005

Как работает авторизация по пин-коду?

Имеется авторизация и регистрация с использованием пароля и почты. Также использую JWT. Хочу добавить возможность авторизации по пин-коду, но не могу понять как правильно такое реализовать. Как такое работает? Появление окна ввода пин-кода как я понимаю происходит после того, когда время жизни токена вышло и после авторизации по пин-коду происходит refresh токена, да? На пример можно взять тот же т-банк web версия. Там когда ты авторизовывается, дальше авторизация идет через пин-код через какое-то время.
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AlexVWill
По уму авторизация по PIN это то же самое, что авторизация по ключу, но для чтения ключа и передачи данных авторизации нужен PIN код вместо пароля. Отличие принципиальное в том, что при неудачном наборе PIN несколько раз (например 5 раз) PIN блокируется, и для доступа к ключу нужен пароль.
Так например работает авторизация в Windows, но я что-то ни разу не встречал такого для доступа к сайтам. Наверное в силу того, на клиенте это надо реализовать программно и защитить как то этот механизм на уровне системы. Ну, например Firebase Authentication такой опции не предлагает.
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
Вы точно не путаете двухфакторку с пин защитой ?

Сперва стоит понять нужно ли что-то подобное для вашего сайта.
Если клиенты вашего сайта вынуждены работать с ним с пк, к которому может подойти посторонний человек.
Например, вы написали CRM для сотрудников торгового зала в магазине.
Но даже в таком случае вместо пина можно, по таймауту неактивности (отсутвия запросов к серверу).
Через JS вывести заглушку. А при попытке F5 (рефреша страницы).
показывать кастомизированную форму логина (Типа Вы такой-то такойтович) введите свой пароль. или войдите под другим логином.

Пин доступ все же для устройств, которые всегда с тобой. И только на короткое время выпускаются из вида.
Если же все таки хочется его прикрутить, то свяжи с сессионной кукой.

Кука ставится например на несколько дней. Каждый запрос к бакенду обновляет поле lastAccessTime в таблице сессий. Тогда если прошло больше (условно 15 минут), то бакенд вместо запрошенной страницы отдает форму ввода пин кода. Совпал - обновляем поле. Нет - считаем попытки. Исчерпал удаляем эту сессию - редириктим на обычный логин.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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