结论:
1. user组件的配置控制session超时时间;
2. Yii::$app->user->login()方法控制cookie超时时间;
3. 如果两个都超时,就需要重新登录了;
4. 代码示例:// user组件:
'user' => [
'identityClass' => 'common\models\system\User',
'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
'enableAutoLogin' => true, // 启用基于 cookie 的登录
'authTimeout' => 60, // session 超时时间
],
// Yii::$app->user->login()方法:
Yii::$app->user->login($this->getUser(), 120);
我们直接看User::switchIdentity()方法,该方法设置登录用户的session和cookie:public function switchIdentity($identity, $duration = 0)
{
// 精简一部分...
if ($identity) {
$session->set($this->idParam, $ide