Привязка Телефона К Аккаунту И Авторизация Путем Сканирования Qr-Кода

Привет, хабр! Сегодня меня поразила идея альтернативной авторизации на сайтах с помощью мобильных устройств, привязанных к аккаунту.

Почему это необходимо? Ну, например, если пользователю лень вводить пароли либо для использования в двухфакторной аутентификации, либо для восстановления пароля и т.п.

На самом деле, я не думал о том, как использовать этот механизм в производстве.

Основная цель – реализация, а дальше посмотрим.



Немного теории



Как это должно выглядеть?
Для привязки и авторизации просто отсканируйте соответствующие QR-коды своим устройством: 1. На странице переплета 2. На странице входа

К чему привязываться?
Немного погуглив, я с грустью понял, что узнать приватную (уникальную) информацию об устройстве из Интернета невозможно.

Ни IMEI, ни серийного номера, ничего подобного.

Остается только это: 1. Долгосрочный файл cookie, который будет храниться в браузере устройства.

2. IP-адреса 3. Пользовательский агент К сожалению, имея такие данные, вы не можете рассчитывать на долгосрочную привязку устройства к вашей учетной записи.



Механизм привязки
1. Сгенерируйте ссылку и создайте QR-код. 2. Устройство сканирует код и переходит по ссылке.

3. Собирается вся возможная информация об устройстве и сохраняется переписка (устройство=пользователь) 4. Поместите файл cookie на устройство.

5. В это время браузер «слушает» специальную ссылку и при получении положительного ответа выводит пользователю сообщение об успешной привязке.



Механизм авторизации
1. Сгенерируйте ссылку и создайте QR-код. 2. Устройство сканирует код и переходит по ссылке.

3. Соберите данные об устройстве и ищите его в базе данных.

4. Если устройство найдено, то открываем сессию для пользователя в браузере 5. В это время браузер «слушает» специальную ссылку и как только будет получен положительный ответ (в данном случае cookie и редирект на нужную страницу), пользователь авторизуется.



Источники

Листинги в посте приводить не буду, если кому интересно обращайтесь в репозиторий по адресу github .

В заключение хотелось бы добавить.

Очень хотелось бы получить адекватные отзывы по улучшению механизма и возможным вариантам использования.

Не сильно критикуйте качество кода, все писалось с нуля «на коленке».

P.S. Пользовательский агент и IP-устройства сохраняются в базе данных, но не используются для авторизации.

Ушёл на будущее.

УПД : Как будет минутка, выложу рабочую версию скрипта для желающих его протестировать.

УПД2 : Репозиторий обновлен.

Выложил скрипт на сервер для желающих его протестировать здесь Теги: #авторизация без паролей #мобильные устройства #php #JavaScript

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.