当前位置:  开发笔记 > 编程语言 > 正文

Yii2中的会话超时

如何解决《Yii2中的会话超时》经验,为你挑选了2个好方法。

我已经使用内置的yii2函数来设置会话.由于某些要求,我无法使用内置的yii2登录.

所以我使用以下设置会话:

Yii :: $ app-> session-> set('unique_code','xxxx');

在我的config/main.php文件中

'session' => [
        // this is the name of the session cookie used for login on the frontend
        'name' => 'project-frontend',
        'timeout' => 60*60*24*30,
    ],

但是一段时间后用户仍然会从网站注销.

那么在这种情况下如何增加会话超时?



1> Deep Swaroop..:

我建议你,如果你想要销毁特定的会话,那么设置两个会话:

Yii::$app->session->set('unique_code', 'xxxx');
Yii::$app->session->set('code_time', 'xxxx');

使用code_time检查当前时间,一旦超过两个会话.

如果您希望用户在一定时间后使用当前解决方案注销:

'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => false,
        'authTimeout' => 3600, // auth expire 
    ],'session' => [
        'class' => 'yii\web\Session',
        'cookieParams' => ['httponly' => true, 'lifetime' => 3600 * 4],
        'timeout' => 3600*4, //session expire
        'useCookies' => true,
    ],



2> 小智..:

问题在于Cookie的过期时间。超时时,用户正在注销。解决方案,要更改Cookie的过期时间,请在Cookie生存期的会话组件集中配置:

    'components' => [
       'session' => [
            'class' => 'yii\web\Session',
            'cookieParams' => ['lifetime' => 7 * 24 *60 * 60]
       ],
   ]

当用户登录时,cookie在当前示例中的到期时间是一周之后。

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有