Вход на сайт с помощью авторизационного файла

Вход на сайт с помощью авторизационного файлаСправа изображён вариант авторизации — с помощью файла.

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

Исходный код (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.

У такого подхода, разумеется, есть как преимущества, так и недостатки. Так что советую внедрять подобное решение только в том случае, если вы уверены, что обеспечили для ваших пользователей достаточную безопасность, и они понимают, что делают.