我已经使用内置的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, ],
但是一段时间后用户仍然会从网站注销.
那么在这种情况下如何增加会话超时?
我建议你,如果你想要销毁特定的会话,那么设置两个会话:
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, ],
问题在于Cookie的过期时间。超时时,用户正在注销。解决方案,要更改Cookie的过期时间,请在Cookie生存期的会话组件集中配置:
'components' => [ 'session' => [ 'class' => 'yii\web\Session', 'cookieParams' => ['lifetime' => 7 * 24 *60 * 60] ], ]
当用户登录时,cookie在当前示例中的到期时间是一周之后。