Titanium SDK版本:1.6.1 iPhone SDK版本:4.2
我对在Appcelerator应用程序(iPhone)中处理用户“会话”时的最佳做法感到困惑。就像现在一样,我将用户令牌保存在属性中,然后在每个页面上检查它是否仍然存在(如在网页上)。这样做不太好,必须有更好的方法。
那么,处理用户登录会话的最佳做法是什么?有人可以为我解释这个过程吗?一步一步。
感谢所有输入!
答案 0 :(得分:2)
我一直在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.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
});
}
请注意,这假设只需要在应用程序启动或恢复时检查身份验证令牌。这应该涵盖大多数情况,但有些情况不适合。