Appcelerator的。处理用户会话

时间:2011-04-21 09:37:09

标签: appcelerator-mobile

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

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

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

感谢所有输入!

1 个答案:

答案 0 :(得分:2)

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

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

    我使用类似下面的方法

  2.     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我还检查令牌是否仍然有效
    3. 对于恢复处理,我在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
          });
      }
      

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