Я обрабатывал проверку подлинности на iOS следующим образом:
В моем 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
}
};
- Когда пользователь выходит из системы, я запускаю событие обратно в app.js, чтобы перезагрузить экран входа в систему
- У меня также есть нижеприведенный файл 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
});
}
Обратите внимание, это предполагает, что проверка токена аутентификации должна выполняться только при запуске или возобновлении работы приложения. Это должно охватывать большинство случаев, но бывают случаи, когда он не подходит.