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