Android - Как сделать транзакции базы данных MySQL с использованием аутентификации? - PullRequest
0 голосов
/ 03 января 2012

Для баз данных, которые не требуют какого-либо имени пользователя или пароля, я обычно выбираю данные из базы данных MySQL из моего приложения для Android, получая доступ к сценариям PHP.Чтобы отправить данные в базу данных, я отправляю переменные GET или POST в сценарии PHP.

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

Сеансы PHP?

Могут ли приложения Android каким-либо образом использовать сеансы PHP при доступе к сценариям PHP на каком-либо веб-серверечерез HTTP-запросы?

Отправить логин / пароль как параметры GET / POST?

В моем приложении при доступе к моим PHP-сценариям я отправляю логин и пароль какGET / POST параметры каждый раз, когда я хочу получить доступ к ограниченным данным?Кажется довольно отрывочной отправкой логина / пароля в виде GET / POST каждый раз.

токен аутентификации?

Или я бы однажды отправил логин / пароль для аутентификации, а затем получил бы некоторыечто-то вроде маркера, который я отправляю при последующих вызовах PHP-скрипта?Я бы предположил, что это будет работать так:

  1. Пользователь отправляет информацию для входа в скрипт PHP
  2. После успешной аутентификации генерируется случайный токен и помещается в таблицу user.
  3. Токен отправляется обратно в приложение
  4. Последующие вызовы базы данных включают токен в качестве параметра GET / POST.
  5. PHP-скрипт использует токен для аутентификации пользователя и получения информации базы данных, которая ограничена этим.user.

Несколько вещей об этом подходе:

  1. Когда приложение выходит из системы?Когда он выходит из приложения?Когда он переключается на другое приложение?Когда действие уничтожается?
  2. Если пользователь не выходит из приложения вручную (что обычно очищает значение токена из таблицы user), когда очищается значение токена?
  3. Что произойдет, если пользователь отключит свой телефон и потеряет соединение с базой данных?Должна ли база данных автоматически очищать значение токена из таблицы user через некоторое время, чтобы какой-то случайный счастливчик не смог угадать токен?
  4. Должен ли токен также установить некоторую временную метку last_accessed_atи запретить аутентификацию с использованием токена через определенный промежуток времени?

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

1 Ответ

1 голос
/ 03 января 2012

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

Также обратите внимание на то, что вы делаете специальное рукопожатие или используете какой-то особый вид безопасности. Никогда не доверяйте вводу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...