Ранее я уже рассказывал о том, как можно добавить авторизационные QR-коды, чтобы пользователи, которые уже вошли на сайт на компьютере, могли сразу же также авторизоваться на мобильных устройствах (например, на планшете или мобильном телефоне), и при этом не вводить ни адрес сайта, ни логин, ни пароль. Справа изображён ещё один вариант авторизации — с помощью файла.
Суть в следующем. Пользователь заходит на сайт, видит на странице обычную форму для входа, в которую он может ввести имя пользователя и пароль и авторизоваться. Но, помимо этого, вместо ввода имени пользователя и пароля, он может просто перетащить на форму авторизации специальный авторизационный файл, и, таким образом, войти на сайт, вообще не касаясь клавиатуры.
Исходный код (Python/Django) простого варианта реализации можно посмотреть здесь. В каждом авторизационном файле хранится некоторая сгенерированная случайным образом строка символов, для которой в базе данных на сервере есть хэш, привязанный к определённому идентификатору пользователя. Таким образом, время, необходимое на вход, минимально: после того, как пользователь перетаскивает авторизационный файл на страницу, JS проверяет размер файла, вставляет содержимое в специальное текстовое поле и тут же отправляет форму — никаких дополнительных действий для входа не требуется, даже кнопку «Войти» нажимать не нужно.
Если вы хотите попробовать вышеописанный метод авторизации, то вам достаточно склонировать себе репозиторий, создать структуру БД с помощью management-команды syncdb (при этом можно как раз создать пользователя), создать авторизационный файл и запустить сервер разработки.
git clone https://github.com/aruseni/fileauth.git
cd fileauth/
python manage.py syncdb
python manage.py makeauthfile 1 key.txt
python manage.py runserver
После открытия http://127.0.0.1:8000/ в браузере нужно перетащить на форму авторизации появившийся в директории fileauth файл key.txt.
У такого подхода, разумеется, есть как преимущества, так и недостатки. Так что советую внедрять подобное решение только в том случае, если вы уверены, что обеспечили для ваших пользователей достаточную безопасность, и они понимают, что делают.
Автор: MaGIc2laNTern