【问题标题】:Implement session in yii and extjs在 yii 和 extjs 中实现 session
【发布时间】:2014-06-14 06:38:23
【问题描述】:

我正在YiiExt JS 中实现loginlogout 功能。到目前为止,我想我已经做到了。但我也想保持一个会话,这样当用户刷新ExtJS 页面时,如果用户仍处于登录状态并且时间已过用户将再次注销,我希望留在当前页面上。

注意: 我正在使用 ajax 请求登录和注销

我尝试阅读文章,但不知道该怎么做

http://www.yiiframework.com/forum/index.php?/topic/12124-how-to-implement-session-timeout/

我是 yii 的新手,所以任何人都可以向我推荐一个如何实现此功能的道路。

到目前为止,我已经在 config.php 文件中启用了它

'session' => array (
    'class' => 'system.web.CDbHttpSession',
    'connectionID' => 'db',
    'sessionTableName' => 'sessions',
),

【问题讨论】:

    标签: php extjs yii


    【解决方案1】:

    在 Yii 中,“记住我”功能是通过 extjs 也可以的 cookie 实现的。因此,在登录时,您应该执行以下操作:

    $identity = new UserIdentity($this->username, $this->password);
    if ($identity->authenticate() && $identity->errorCode === UserIdentity::ERROR_NONE) {
        $duration = 3600*24*30; // 30 days
        Yii::app()->user->login($this->_identity, $duration); // <----- here!
    }
    

    很可能您已经在某处使用Yii::app()-&gt;user-&gt;login,所以找到它并添加第二个参数。

    【讨论】:

    • 我已经这样做了,如果持续时间为 60 分钟,即一小时,会话超时怎么办,如果我在一小时后触发 ajax 请求,即使 m 仍然能够获取数据未登录
    • 给出了赏金,但答案不是我要找的,我的意思是它根本不能解决我的问题
    • 您还有什么问题?
    【解决方案2】:

    我在 Yii 中实现了一个自定义登录,我唯一要做的就是“告诉”应用程序有人登录了。

            $identity = new UserIdentity("login","pwd");
            // Check auth...
            // ...
            // if logging successful :
            Yii::app()->user->login($identity,3600);
    

    【讨论】:

      猜你喜欢
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      相关资源
      最近更新 更多