ExtJS:如何只存储一次用户的登录信息


ExtJS: How to store a user's login information only once?

我使用Ext.Ajax.request()来访问一个PHP页面,该页面为我提供了一些用户特定的信息,作为登录过程的一部分。基本上我想在ExtJS中存储一些变量(cookie,会话信息等)。我创建了一个包含所需字段和存储的模型。尽管身份验证只执行一次,但我希望确保在给定时间只有一个用户信息副本。我希望使用该信息再次访问PHP,而无需再次进行身份验证(cookie)。下面是我获取和存储它的方法:

Ext.Ajax.request({
            url: 'api/get.php',
            params: {
                user : usr,
                pass : pass
            },
            success: function(response)
            {
                var text = response.responseText;
                var jtext = Ext.JSON.decode(text);
                var login = jtext.loginData;
                model.set('username', login.username);
                model.set('cookie', login.cookie);
                model.set('password', login.password); // doing this feels soo wrong!
                store.insert(0, model);
                store.sync();
                console.log(store.getCount());
            }
        });

做这件事的更好方法是什么?由于我目前使用的是外部(PHP)服务,因此我只检查user/pass是否正确,如果正确,则将其从客户端传递给PHP函数,这些函数对外部服务进行任何操作,每次都使用它们进行身份验证。或者,我可以每次将cookie传递给PHP, PHP再将其传递下去。我还可以将j<->PHP cookie映射到ph<->服务cookie,这样就更好了。

干杯!

Ext.util.Cookies.set('myObj',Ext.encode(obj))

像这样使用,当你想使用它

id = (Ext.decode(Ext.util.Cookies.get('myObj'))).id