1

Titanium SDK 版本:1.6.1 iPhone SDK 版本:4.2

在 Appcelerator 应用程序 (iPhone) 中处理用户“会话”时,我对最佳实践感到有些困惑。就像现在我将用户令牌保存在一个属性中,然后在每个页面上检查它是否仍然存在(比如在网页上)。这不是很好,必须有更好的方法。

那么,处理用户登录会话的最佳实践是什么?有人可以为我解释一下这个过程吗?一步步。

感谢所有输入!

4

1 回答 1

2

我一直在处理 iOS 上的身份验证验证,如下所示:

  1. 在第一次加载的 app.js 中,我检查令牌是否有效,如果不是,我会显示登录信息。

    我使用类似于以下的方法

    功能需要2登录(){
      var lastLogin = Ti.App.Properties.getString('last_login');
      if(lastLogin.length==0){
          返回真;
      }

      //添加一些日期验证以使任何令牌过期

      // 根据验证规则返回一个值
    };
函数管理登录(){
    如果(需要2登录()){
       wLogin.open(); //打开登录窗口
    }别的{
             wMain.open(); //打开主窗口
    }   
};
  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
    });
}

请注意,这假设仅在应用程序启动或恢复时才需要检查身份验证令牌。这应该涵盖大多数情况,但也有一些不适合的情况。

于 2011-04-29T11:14:45.047 回答