2015-11-17 3 views
0

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

Это проблема. Как-то мне нужно войти в бэкэнд при запуске приложения, если пользователь выбрал флажок «Запомнить меня» по последнему логину.

Я понял, что есть решение на основе токенов. Ваш backend создает токен и сопоставляет его с идентификатором сеанса. Затем он отправляет токен клиенту (приложению), который сохраняется в localstorage. Как вы это делаете?

+0

Мы используем локальный токен хранилища для этой цели. Я не знаю никаких проблем с безопасностью, хотя мы не храним ключи от Fort Knox в нашем приложении. Тем не менее, ваш вопрос слишком широк для SO. – isherwood

+0

эй спасибо. да, возможно, объект безопасности слишком широк для SO. Но я думаю, мы можем обсудить подход маркера. Вы используете в бэкэнд таблицу, в которой вы храните идентификатор пользователя, токен (возможно, expireDate, createdDate)? – user3481997

+0

Да, хотя я сторонний разработчик и не очень понимаю. – isherwood

ответ

2

Это мое решение:

  1. Я использую протокол HTTPS, проверка сертификата на этот плагин: https://github.com/EddyVerbruggen/SSLCertificateChecker-PhoneGap-Plugin

  2. Мое приложение шифрованных с помощью этого плагина: https://github.com/tkyaji/cordova-plugin-crypt-file

  3. Пользователь является отправка запроса на вход через ajax (отправка: имя пользователя, пароль, устройство-uuid) и получение маркера с сервера.

  4. Я делаю то же самое в моем приложении с токеном и сохраняю его в локальной базе данных sqlite с помощью этого плагина: https://www.npmjs.com/package/cordova-sqlite-storage. Причиной этого является то, что можно скопировать базу данных.

  5. При каждом ajax-запросе я отправляю дешифрованный токен и устройство-uuid.

  6. Время от времени я меняю токен.

+0

По-моему, это очень приятное решение. поскольку вы отправляете устройство uuid, которое уникально для каждого устройства (независимо от того, какой бренд) - по крайней мере, я так думаю. я предполагаю, что злоумышленник ничего не мог сделать, даже если он смог украсть токен. – user3481997

Смежные вопросы