我正在创建一个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
答案 0 :(得分:1)
一般来说,您不能依赖于在JS应用程序中本地保存的任何信息。它可以相对容易地进行欺骗和改变。
您需要做的是将用户名/密码组合发送到您的服务器后端。然后,服务器应返回加密的cookie,应用程序将在每次跟随请求时将其发送回服务器。只有通过解密和验证此cookie服务器才能确保登录用户的身份。