会话超时如果15分钟内没有活动不起作用?

时间:2017-02-10 02:02:31

标签: yii2

我使用高级模板,我可以在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分钟内没有活动,我可以实现会话超时。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我相信您的问题不同,并且有一个比在控制器中放置触发器更好的解决方案。 很可能你没有为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);

这也可能有多种原因,但这是最明显的原因。