Привет, хабр! Сегодня меня поразила идея альтернативной авторизации на сайтах с помощью мобильных устройств, привязанных к аккаунту.
Почему это необходимо? Ну, например, если пользователю лень вводить пароли либо для использования в двухфакторной аутентификации, либо для восстановления пароля и т.п.
На самом деле, я не думал о том, как использовать этот механизм в производстве.
Основная цель – реализация, а дальше посмотрим.
Немного теории
Как это должно выглядеть?
Для привязки и авторизации просто отсканируйте соответствующие 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
-
Доступная Альтернатива Планшетному Пк
19 Oct, 24 -
Харрис, Зеллиг Заббетай
19 Oct, 24 -
Давайте Работать В Режиме Многозадачности
19 Oct, 24 -
Iwf Реабилитировала Википедию
19 Oct, 24