Наверное, каждый пользователь смартфона оказывался в такой ситуации: хочешь зайти в любимую социальную сеть мобильным браузером, или отдельным приложением, и вдруг сталкиваешься с окошком логина и квестом "набери 40 символов на экранной клавиатуре" (причём половину из них - пароль - почти вслепую). Волей-неволей плюёшь на это дело и идёшь к рабочему столу смотреть последние фоточки друзей с лаптопа. В какой-то момент зарождается мысль: но ведь если я уже залогинен там своим ПК, почему бы не делегировать мобильному устройству пользовательскую сессию из настольного браузера?
Сделать это можно по-разному: синхронизировать хранилище паролей в мобильном и настольном браузере, или использовать для хранения паролей стороннюю программу. Пришедшее мне в голову решение требует минимальных усилий как со стороны разработчика сайта, так и со стороны пользователя. Решение это базируется на использовании так называемых QR-кодов.
| Если вы всё ещё не знаете что такое QR-код, то скорее всего в последний год вы жили вне интрнета. Ну или не ходили дальше сайта "одноклассники.ру". Технология, родственная обычному штрихкоду, который можно найти на любой упаковке, но которая позволяет закодировать в небольшом квадратике небольшое текстовое сообщение, сначала уверенно пробивала себе дорогу сначала в специализированные системы. Так, например, мои коллеги участвовали в разработке ПО для госпиталей, в котором QR-коды использовались для пометки всего, чего только можно: лекарств, больных, всего к чему можно прицепить небольшой стикер. Пример QR-закодированной ссылки.
В начале 2010 года случилось негромкое, но важное для технологии событие: QR код был по ТВ, по каналу Weather Channel. В коде была закодирована ссылка, с помощью которой можно было скачать приложение для смартфона на платформе Android. Сайты посвящённые приложениям для этой платформы, тоже часто предоставляют подобные QR-коды. Это значительно повышает удобство скачивания, ведь приложение Barcode Scanner доступно бесплатно, а считать код фотокамерой с монитора значительно проще чем искать приложение в Android Market. Использование QR-кодов не ограничивается специализированными системами, они оказались очень удобны для кодирования интернет-ссылок и других длинных идентификаторов. И очень удобны они оказались для чтения не специализированными сканерами, а обычными телефонами. Те как раз обзавелись камерами и доступом в интернет, но ввод ссылки, состоящей из десятков символов до сих пор представляет если не проблему, то некоторое неудобство. |
Применительно к проблеме аутентификации QR-коды можно было бы использовать так: для каждого пользователя генерируется уникальная длинная (32-64 символов) строка - ключ аутентификации и привязывается к его аккаунту. В дополнение к форме логина реализуется ещё один URL для аутентификации типа http://site.com/auth?qr=<ключ> показывается, например, в профиле пользователя в виде QR-кода. При заходе на URL, по ключу находится пользователь и далее логин в систему происходит как обычно.
Область применения этого способа не ограничивается браузером, подобную систему можно использовать для аутентификации любого приложения для работы с удалёнными сервисами, например, для клиента почты или социальной сети.
Прикручивание прототипа такой системы к моему (вяло)текущему проекту на Grails заняло пару часов, но при некотором навыке можно было бы обойтись и двадцатью минутами, благо есть готовые библиотеки для работы с линейными и QR-кодами. Так, например, джависты могут использовать библиотеку . Она же, к слову, является основой приложения Barcode Scanner для Android.
Добавить комментарий
Комментарии
http://site.com/auth?qr=<ключ>
Ключ можно ввести от балды, если попадешь - будет доступ к странице, а дальше - хочешь спамь, хочешь удаляй стр... и тд.