Как сохранить учетные данные пользователя с помощью API PhoneGap?

Я хочу сохранить учетные данные пользователя для входа в свое приложение для iPhone. Приложение создано с использованием API PhoneGap и SenchaTouch. Если пользователь входит в систему через приложение, я хочу сохранить его идентификатор пользователя/пароль до тех пор, пока он не выйдет из системы. Это избавит его от процесса входа в систему каждый раз, когда он использует приложение, и улучшит пользовательский опыт.

Любая помощь будет оценена по достоинству.

Спасибо


person user842122    schedule 09.02.2012    source источник


Ответы (2)


Всегда есть локальное хранилище. Это простое постоянство ключ/значение, которое будет делать именно то, что вы ищете.

http://paperkilledrock.com/2010/05/html5-localstorage-part-one/

редактировать: ссылка выше умерла: http://diveintohtml5.info/storage.html

person Devgeeks    schedule 10.02.2012
comment
и примеры PhoneGap localStorage на docs.phonegap.com/en/1.4. .1/ - person Paul Beusterien; 10.02.2012
comment
Да, если ваша настойчивость нуждается в расширении за пределы ключ/значение... есть API хранилища PhoneGaps с использованием веб-SQL. - person Devgeeks; 10.02.2012
comment
А как насчет связанных с безопасностью вопросов? - person Caio Oliveira; 04.02.2014
comment
БД localStorage защищена песочницей/разрешениями приложения... однако проблема безопасности возникает, если телефон потерян или украден. В этих условиях (наряду с рутированием Android-устройства или джейлбрейком iOS-устройства) злоумышленник может получить доступ к базе данных localStorage. Одним из вариантов на iOS является KeyChain, но на Android нет эквивалента, и даже KeyChain безопасен только в том случае, если устройство пользователя заблокировано с помощью PIN-кода. - person Devgeeks; 06.02.2014
comment
@Devgeeks ссылка, размещенная в исходном ответе, на данный момент не работает. Не могли бы вы еще раз добавить рабочую ссылку.. или рассказать, как использовать эту ссылку - person Anshuman Banerjee; 30.07.2015
comment
Я добавил новую ссылку с приличным описанием опций и API. - person Devgeeks; 03.08.2015

Вот как я это делаю в одном из своих проектов:

var login = this.loginField.getValue(),
    pwd = this.passwordField.getValue(),    
    logChain = login + ":" + pwd,
    logChain64 = Ext.util.base64.encode(logChain);

window.localStorage.setItem("YOUR_APP_credentials", logChain64);
person Titouan de Bailleul    schedule 18.02.2012
comment
Зачем кодировать base64? - person bulltorious; 11.04.2013
comment
В случае кражи/взлома телефона? - person IcedDante; 17.10.2013
comment
Просто чтобы было ясно, base64 - это не шифрование. Он передает двоичные данные в текст, чтобы передавать их между доменами и т. д. без их модификации. Это не имеет абсолютно никакой дополнительной ценности, когда ваш телефон украден, взломан, ... - person randomizer; 26.09.2014
comment
Это может запутать менее умных телефонных воров... :D - person Adam B; 29.01.2015
comment
Вы НИКОГДА не сохраните пароль пользователя! Сгенерируйте токен из пользователя и пароля и сохраните токен+имя пользователя, чтобы получить доступ. - person bastianwegge; 03.04.2015