Удостоверяване и проследяване на потребители в JSON уеб услуга

Имам приложение за управление на контакти / CRM, използвано вътрешно от нашата компания. Това е уеб базирано приложение и следователно използва много Ajax. Повечето от данните са JSON, а бекенд сървърът използва PHP с MySQL като база данни...

Бих искал да създам мини версия на Adobe Air, най-вече защото мога да използвам качване на файлове с плъзгане и пускане, преоразмеряване на изображения от страна на клиента, създаване на екранна снимка на качени файлове от страна на клиента и т.н. и т.н.

Сега, тъй като страната на сървъра е прославен доставчик на JSON данни, смятам, че мога да го адаптирам, за да предоставя данни на приложението AIR.

Проблемът ми е как да се справя с удостоверяването?
В PHP използвам сесии за удостоверяване...
За AIR предполагам, че ще бъде по-скоро като JSON уеб услуга, където извиквате определен URL за достъп до определени JSON данни .

След малко мозъчна атака, ето какво измислих:

  1. Потребителят влиза, когато стартира приложението AIR
  2. Сървърът връща уникален токен при успешно влизане и съхранява този токен в DB
  3. Приложението AIR трябва да добави това означение към всяка заявка, която прави към сървъра
  4. При всяка заявка сървърът проверява валидността на токена, като го сравнява с този, съхранен в DB.

Въпросите са,
има ли по-добър начин от този?
Колко време трябва да е валиден токенът?
Как да се справя с клиенти, които затварят приложението, без да излизат и без да ми дават възможност да да анулирам токена на сървъра?

Ако някой е бил в подобна ситуация, надявам се да се просветли от вашите отговори...

Благодаря


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


Отговори (1)


Какво ще кажете за това:

  1. просто връщане на PHP Session ID във вашите 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