加速器。处理用户会话

发布于 2024-11-02 12:46:12 字数 221 浏览 0 评论 0原文

钛金SDK版本:1.6.1 iPhone SDK 版本:4.2

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

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

感谢所有的投入!

Titanium SDK version: 1.6.1
iPhone SDK version: 4.2

I am a bit confused about what is the best practice when dealing with user "sessions" in Appcelerator apps (iPhone). Like it is now I save the users token in a property and then check on each page that it still exists (like on a webpage). This does not work so good and there must be a better way.

So, what is the best practise for handling user login sessions? Can someone explain the process for me? Step by step.

Thankful for all input!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在巴黎塔顶看东京樱花 2024-11-09 12:46:12

我一直在 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.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
    });
}

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

I've been handling authentication verification on iOS as follows:

  1. In my app.js on first load I check that the token is valid, if not I display a login.

    I use methods similar to the below

    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. When the user logs out, I fire an event back to the app.js to reload the login screen
  2. I also have the below in my app.js to handle on App Resume I also check if the token is still valid

For the resuming handling I use the following in my app.sj:

1) Check if we're on 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) Then add the handler

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
    });
}

Please note this assumes checking the authentication token only needs to be done when the App starts, or resumes. This should cover most cases, but there are aways ones were it wont fit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文