1

我有基于 Web 的应用程序,其中必须管理用户会话。

在 app.js 中,我将启动配置用作:

launch: function(){
    Ext.create('myproject.view.LoginForm')
}

LoginForm :将显示登录对话框并调用登录控制器与服务器通信以验证用户提供的凭据。

因此,当用户刷新 Extjs 要求登录的页面时,这是因为我没有在这里检查会话,会话详细信息应该如何存储在 Extjs 客户端中并检查以避免提示登录,除非用户已注销? 以及如何管理用户会话?

4

2 回答 2

1

用户身份和会话信息必须存储在服务器端。通常,一旦用户成功验证,就会设置一个 cookie,以免再次提示用户。此 cookie 从服务器发送并自动存储在浏览器中,并在页面刷新时发送回服务器进行检查。如果 OK 允许用户继续,服务器应该验证 cookie。

根据下面的@existdissolve 评论

在您的启动方法中,只需在创建登录表单之前运行一次会话检查。无论是 cookie 检查还是直接向服务器发出请求,会话检查的结果都可以触发登录表单的创建,或者您用于创建应用程序其余部分的任何其他逻辑

于 2013-09-26T05:20:23.087 回答
1

会话管理可以使用

内部登录控制器

// Storing user details in session / cookies 
Ext.util.Cookies.set("key", value); 

注销按钮

// remove user details from cookies
Ext.util.Cookies.set("key", value); 

在 App.js 中

autoCreateViewport: false,

launch: function(){

    var key= Ext.util.Cookies.get("key");

    if (key=== undefined || key== 'null' || key== null || key.length <= 0){
        // load login UI as user is not logged in
        Ext.create('app.view.LoginForm');
    }
    else {
        // load main UI as user is already logged in
        Ext.create("app.view.Viewport");
    }
}
于 2013-09-27T14:06:08.510 回答