Sencha Touch 2 - 登录用户状态

时间:2012-07-08 18:23:46

标签: javascript sencha-touch sencha-touch-2

我正在创建一个ST2应用程序,您可以在其中登录/注册等。

我想知道登录并在整个应用程序中拥有用户状态的正常方式是什么。

我有一个带有REST代理的用户模型来获取/保存数据。当你加载应用程序时,我这样做是为了抓住用户:

launch: function () {
    var User = Ext.ModelManager.getModel('App.model.User');
    User.load("", {
        success: function (user) {

            // I have the user here but it's only within this scope

        }
    });
}

但是这样做只能在这个函数中使用...那么人们通常会做什么来在整个应用程序中获得用户的支持?只需将其存储在应用程序中,如:

application.user = user;

或者您是使用User模型创建ID为User的商店,然后使用以下方法检索:

launch: function () {
    var User = Ext.StoreManager.get('User');
    User.load(function(user) {
        // Do application logged in stuff
         self.getApplication().fireEvent('userLogsIn');
    });
}

someRandomFunction: function () {
    var user = Ext.StoreManager.get('User').getAt(0),
        email = user.get('email');
        console.log(email);
}

谢谢,Dominic

1 个答案:

答案 0 :(得分:1)

一般来说,您不能依赖于在JS应用程序中本地保存的任何信息。它可以相对容易地进行欺骗和改变。

您需要做的是将用户名/密码组合发送到您的服务器后端。然后,服务器应返回加密的cookie,应用程序将在每次跟随请求时将其发送回服务器。只有通过解密和验证此cookie服务器才能确保登录用户的身份。