Как реализовать схему входа в систему только для первого раза для мобильного веб-приложения, реализованного с помощью jQuery Mobile, PhoneGap и Django? - PullRequest
14 голосов
/ 04 июня 2011

Я на начальной стадии (предварительного кодирования) разработки мобильного веб-приложения с использованием jQuery Mobile (мы рассматривали Sencha Touch в течение нескольких недель, но jQuery Mobile лучше подходит для компетенций нашей команды). Я обертываю веб-приложение jQuery Mobile с PhoneGap , чтобы создать собственное приложение для iPhone, iPod touch и iPad. Я использую Django для наших веб-приложений, поэтому собираюсь сделать то же самое здесь для серверной части с некоторым потоком данных JSON / Ajax / REST для интерфейса между мобильным приложением и сервером. Поскольку это мобильное приложение, у нас должен быть доступ ко всем видам HTML5 .

Несмотря на то, что я, вероятно, возникну с другими проблемами / вопросами для этой реализации, вот мой текущий вопрос / проблема:

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

Я довольно новичок в схемах аутентификации. Что мне делать?

Ответы [ 6 ]

4 голосов
/ 29 ноября 2011

Решение KeyChain будет работать только на устройствах iOS, поэтому, если это ваша единственная цель, у вас все в порядке.

Но как насчет других? Вид бесполезного использования PhoneGap, но затем развертывание только в одной среде ...

Я знаю, что localStorage небезопасен, но если вы знаете об ограничениях, есть способы сделать немного менее "очевидным".

Вот плагин jQuery.handleStorage , который также обрабатывает шифрование AES ... Вы можете взглянуть на источник и реализовать только те части, которые вам нужны (если вы не хотите использовать весь плагин, который также поддерживает настольные браузеры!).

PS: я никоим образом не связан с этим плагином или автором

4 голосов
/ 05 июня 2011

Я бы посоветовал не хранить в локальном / веб-хранилище HTML5.Если вы ориентируетесь на iOS PhoneGap, я бы порекомендовал использовать плагин Keychain: http://blogs.nitobi.com/shazron/2010/11/06/ios-keychain-plugin-for-phonegap/

4 голосов
/ 05 июня 2011

Несмотря на то, что вы не используете Sencha Touch, есть довольно хороший обзор проблем в HTTP-аутентификация .

Что касается хранения информации аутентификации послепри первоначальном входе в систему вы можете попробовать локальное хранилище или файл cookie (хотя вам может потребоваться использовать PhoneGap для включения хранилища файлов cookie ).HTML5 также обеспечивает локальное клиентское хранилище со значением ключа .Если куки аутентификации работают, я считаю, что это может быть обработано автоматически для вас;в противном случае вы можете реализовать проверку подлинности document.ready в вызове Ajax, используя данные аутентификации из локального хранилища (или зашифрованное хранилище ).

1 голос
/ 01 марта 2015

Это был один из актуальных вопросов, которые у меня возникли, когда я начал разработку мобильных приложений с PhoneGap.Позвольте мне объяснить, что я делаю, чтобы пройти.

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

Теперь для будущего общения используйте токен, токен будет передаваться при каждом обращении к веб-службе стороне сервера, где сервербудет проверять подлинность токена, выданного сервером.Вы можете аннулировать токен каждые 72 часа или 48 часов в соответствии с вашими требованиями (или без истечения срока действия).Как только токен будет признан недействительным, вам нужно будет войти в систему и получить новый токен.

Надеюсь, что это решит вашу проблему.

0 голосов
/ 05 июня 2011

В нем говорится, чтобы включить файл PHP в файл HTML, но я не уверен, что PhoneGap работает с PHP.Я только начал использовать PhoneGap в эти выходные.

0 голосов
/ 05 июня 2011

Попробуйте HTTP-аутентификация с HTML-формами и посмотрите, поможет ли это.

...