【问题标题】:Session timeout if no activity in 15 minutes not working?如果 15 分钟内没有任何活动不工作,会话超时?
【发布时间】:2017-02-10 02:02:31
【问题描述】:

我使用高级模板,我可以在 15 分钟内成功会话超时,但这并不取决于活动,所以即使用户在登录后活​​跃在网站上,他也会在 15 分钟后注销。

我知道我应该在 SiteController 中放置触发器以增加超时的想法,但不知道如何实现它。

到目前为止,这是我的代码

backend\config\main.php

  'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => false,
            'authTimeout' => 900
        ],
        'session' => [
            'class' => 'yii\web\Session',
            'cookieparams' => ['httponly' => true, 'lifetime' => 900],
            'timeout' => 900,
            'useCookies' => true,
        ],

frontend\config\main.php

'user' => [
            'identityClass' => 'common\models\UserCustomer',
            'enableAutoLogin' => false,
            //'enableSession' => true,
              'authTimeout' => 900,
        ],
        'session' => [
            'class' => 'yii\web\Session',
            'cookieparams' => ['httponly' => true, 'lifetime' => 900],
            'timeout' => 900,
            'useCookies' => true,
        ],

我现在该怎么办?所以如果 15 分钟内没有活动,我可以实现会话超时。

提前致谢。

【问题讨论】:

    标签: yii2


    【解决方案1】:

    我相信您的问题有所不同,并且有比在控制器中放置触发器更好的解决方案。 很可能您没有为http://www.yiiframework.com/doc-2.0/yii-web-user.html#login()-detail 设置持续时间。搜索您登录用户的行。大概是这样的:

    Yii::$app->user->login($this->getUser());
    

    改成

    Yii::$app->user->login($this->getUser(), 900);
    

    这也有几个原因可能不起作用,但这是最明显的。

    【讨论】:

    • 已经在每个控制器上实现了触发器,也许你的解决方案是下次更新。还是非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2012-02-25
    • 2023-03-16
    • 2017-09-26
    • 2018-10-10
    • 1970-01-01
    • 2010-12-16
    相关资源
    最近更新 更多