Аутентификация и отслеживание пользователей в веб-сервисе JSON

У меня есть приложение для управления контактами / CRM, используемое нашей компанией. Это веб-приложение, поэтому в нем много Ajax. Большая часть данных представлена ​​в формате JSON, а внутренний сервер использует PHP с MySQL в качестве базы данных...

Я хотел бы создать мини-версию Adobe Air, в основном потому, что я могу использовать загрузку файлов перетаскиванием, изменение размера изображения на стороне клиента, создание скриншотов загруженных файлов на стороне клиента и т. д. и т. д.

Теперь, поскольку серверная часть является прославленным поставщиком данных JSON, я полагаю, что могу адаптировать ее для предоставления данных в приложение AIR.

Моя проблема в том, как мне обрабатывать аутентификацию?
В PHP я использую сеансы для аутентификации...
Я полагаю, что для AIR это будет больше похоже на веб-службу JSON, где вы вызываете определенный URL-адрес для доступа к определенным данным JSON. .

После небольшого мозгового штурма вот что у меня получилось:

  1. Пользователь входит в систему при запуске приложения AIR.
  2. Сервер возвращает уникальный токен при успешном входе в систему и сохраняет этот токен в БД.
  3. Приложение AIR должно добавлять этот токен к каждому запросу, который оно отправляет на сервер.
  4. При каждом запросе сервер проверяет действительность токена, сравнивая его с тем, который хранится в БД.

Возникает вопрос:
есть ли лучший способ, чем этот?
Как долго должен быть действителен токен?
Как мне работать с клиентами, которые закрывают приложение, не выходя из системы и не давая мне возможности обнулить токен на сервере?

Если кто-то был в подобной ситуации, я надеюсь быть просветленным вашими ответами...

Благодарность


person ekhaled    schedule 17.11.2009    source источник
comment
+1 @thephpdeveloper, но если вы все еще хотите войти в токен, есть способ запустить событие в window.close(), и вы также можете запустить метод, который время от времени проверяет статус всех активный токен в базе данных, тем самым очищая один неактивный более X мин. Но использовать идентификатор сеанса определенно проще!   -  person Tom    schedule 18.11.2009


Ответы (1)


Как насчет этого:

  1. просто возвращая идентификатор сеанса PHP в ваших данных JSON в приложение AIR после аутентификации
  2. Ваше приложение AIR сохраняет идентификатор сеанса и использует его для запросов в этом сеансе.
  3. когда ваш PHP получает запрос с идентификатором сеанса, установите его на этот идентификатор сеанса:
  4. Ваш сеанс будет легко поддерживаться PHP, и вы сможете использовать $_SESSION как обычно.

Когда вы получите запрос с идентификатором сеанса, просто сделайте следующее:

if(isset($_GET['sess_id'])){
  session_id($_GET['sess_id']);
  // where $_GET['sess_id'] is where you put the Session ID stored in your AIR APP
}

Это может быть лучше, потому что вам не нужно поддерживать сеансы в базе данных.

person mauris    schedule 17.11.2009