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

谢谢,多米尼克

4

1 回答 1

1

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

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

于 2012-07-08T22:57:30.907 回答