session - Yii2 从不注销空闲或离开用户
问题描述
如果 Yii 中的用户关闭浏览器或闲置大约一天(可能更少,我不确定),他们似乎会自动注销。是否有可能永远不注销它们(或者至少一个月或一年的很长一段时间)。不确定是否需要更改 Session 参数或 Cookie 参数。
我试过改变参数。
'components' => [
'session'=>[
'class' => 'yii\web\Session',
'cookieParams' => ['httponly' => true, 'lifetime' => 3600 * 4* 365],
'timeout' => 3600*4 *365,
'useCookies' => true
],
]
我试过会话 php ini 参数:
session_set_cookie_params(0);
ini_set('session.gc_maxlifetime', 0);
我试过设置登录参数
Yii::$app->user->login($user, 31536000);
解决方案
您使用的选项应该可以在没有timeout
和useCookies
选项的情况下使用,我在上一个项目中使用它,会话需要至少持续一周,在 Mozilla 开发栏中打开存储选项卡并单击左侧的 cookie,您将看到 cookie 部分使用为您的网站注册的 cookie,在我的情况下是http://www.kp2.local
如果您使用它,它应该在1 周后'lifetime' => 7 * 24 * 60 * 60,
显示具有到期日期的 cookie,即如下所示Wed, 23 Jan 2019
如果您注释掉代码然后注销,然后再次登录,它应该会显示到期Session
时间
您只需要在配置中使用以下设置
'session' => [
// this is the name of the session cookie used for login on the frontend
'name' => 'advanced-frontend',
'cookieParams' => [
'httpOnly' => true,
'lifetime' => 7 * 24 * 60 * 60
],
],
如果仍然无法正常工作,请退出系统并尝试通过选择Delete all
下图所示的选项来删除所有 cookie。
它会起作用。
注意:您应该将7
in更改'lifetime' => 7 * 24 * 60 * 60,
为要保留会话的天数
推荐阅读
- php - 使用 PHP 验证苹果收据有时不起作用
- ads - 谁在 VAST 代码中设置 SkipOffset 值?
- android - 亚马逊应用程序是否使用本机 webview?
- c# - 将 samaccount 名称列表转换为专有名称
- javascript - 如何在javascript中更改嵌套函数中的函数变量?
- elasticsearch - 使用弹性搜索在代理后面的 UI 仪表板
- javascript - Vis.js JSON 数据到 Google 电子表格范围
- php - 紧凑型 Laravel 中未定义的变量“注释”
- python - Python 使用 for 循环将列表转换为 AscII
- python - 如何在 Python 脚本中获得管理员权限?