Appcelerator.Обработка пользовательских сессий - PullRequest
1 голос
/ 21 апреля 2011

Версия Titanium SDK: 1.6.1 Версия iPhone SDK: 4.2

Меня немного смущает вопрос о том, что лучше всего делать с пользовательскими "сессиями" в приложениях Appcelerator (iPhone).Как сейчас, я сохраняю токен пользователя в свойстве, а затем проверяю на каждой странице, что он все еще существует (как на веб-странице).Это не так хорошо работает, и должен быть лучший способ.

Итак, что является лучшим методом для обработки пользовательских сеансов входа в систему?Может кто-нибудь объяснить процесс для меня?Шаг за шагом.

Благодарю всех за ввод!

1 Ответ

2 голосов
/ 29 апреля 2011

Я обрабатывал проверку подлинности на iOS следующим образом:

  1. В моем app.js при первой загрузке я проверяю токен, если нет, я отображаю логин.

    Я использую методы, аналогичные приведенным ниже

    function need2Login(){
      var lastLogin = Ti.App.Properties.getString('last_login');
      if(lastLogin.length==0){
          return true; 
      }

      //add some date validation to expire any tokens

      // return a value based on the validation rules
    };
function manageLogin(){
    if(need2Login()){
       wLogin.open(); //Open Login window
    }else{
             wMain.open(); //Open Main window
    }   
};
  1. Когда пользователь выходит из системы, я запускаю событие обратно в app.js, чтобы перезагрузить экран входа в систему
  2. У меня также есть нижеприведенный файл app.js для обработки в App Resume. Я также проверяю, действителен ли токен

Для возобновления обработки я использую следующее в моем app.sj:

1) Проверьте, находимся ли мы на iOS 4 +

function isiOS4Plus(){
    // add iphone specific tests
    if (Ti.Platform.name == 'iPhone OS'){
        var version = Ti.Platform.version.split(".");
        var major = parseInt(version[0],10);

    // can only test this support on a 3.2+ device
    if (major >= 4){
        return true;
    }
   }
   return false;
};

2) Затем добавьте обработчик

if (isiOS4Plus()){
    // fired when an app resumes for suspension
    Ti.App.addEventListener('resumed',function(e){
       //check if login is still valid
       manageLogin(); //I just reuse my login logic on resume
    });
}

Обратите внимание, это предполагает, что проверка токена аутентификации должна выполняться только при запуске или возобновлении работы приложения. Это должно охватывать большинство случаев, но бывают случаи, когда он не подходит.

...