Вход пользователя и оставаться в системе с приложением phonegap?

Я создаю мобильное приложение для своего веб-сайта с помощью Phonegap и использую PHP Codeigniter Framework для создания своего REST API. Мне нужно разрешить пользователям входить в приложение и получать информацию, но я немного запутался в части аутентификации.

Прямо сейчас это то, что я имею в виду:

  • Пользователь входит в систему с именем пользователя / паролем (они будут отправлены на сервер с использованием HTTPS)
  • Мой API проверит БД, чтобы увидеть, существует ли пользователь
  • Если пользователь существует, сгенерируйте случайную строку (токен) и отправьте ее обратно клиенту
  • На стороне клиента (мобильное приложение) храните токен где-нибудь
  • Каждый раз, когда пользователь запрашивает информацию с сервера, отправьте токен для проверки

Я решил использовать маркерный метод, потому что мне нужно было разрешить пользователям оставаться в приложении после первого входа в систему (я прочитал, что хранение имени пользователя / пароля на стороне клиента — это плохо).

Итак, вот мои вопросы,

Мой метод действителен / безопасен? Если да, то как токен хранится в телефонной пробке? Будет ли LocalStorage делать эту работу?

Есть ли лучше & более простой метод?

Есть ли библиотеки, которые могли бы помочь мне сделать это проще / быстрее? особенно с созданием REST API?

Наконец, я слышал об OAuth2, но это только для случаев, когда вы хотите разрешить сторонние входы в систему (Google, Facebook и т. Д.)? Я посмотрел на это, и, кажется, есть OAuth для PHP и OAuth для Phonegap. Если я это реализую, нужно ли мне это делать на стороне REST API И телефонной щели?

Я довольно новичок во всем этом, поэтому любые объяснения с примерами будут полезны.

1

Решение

Я предлагаю использовать ваш метод токена. Каждый раз, когда приложение запускается, проверьте, установлено ли локальное хранилище для пользовательского токена, если не настроен http-запрос, и сохраните токен в localstorage.
Вот пример кода

function validateUser(username,password){
//get the user token from local storage
if(window.localStorage.getItem('usertoken')==null){
//set up the http request
$.ajax({
url:'www.example.com/login.php',
method:post,
data:{'username':username,'password':password}
success:function(data){
//set the token in localstorage
window.localStorage.setItem('usertoken',data);

}
});
}
}
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector