2017-01-19 143 views
0

我已經使用內置的yii2函數來設置會話。由於某些要求,我無法使用內置的yii2登錄。Yii2中的會話超時

所以我用下面設置會話:

的Yii :: $ APP->會話級>設置( '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, 
    ], 

但還是用戶從網站上一段時間後註銷。

那麼如何在這種情況下增加會話超時?

回答

3

我會建議你,如果你想消滅特定的會話才設置兩個會議:

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

檢查當前時間code_time,一旦超過未設置這兩個會議。在Cookie過期時間

'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

問題是:如果你想用戶應該一定的時間與當前的解決方案後註銷

。超時時,用戶註銷。 解,用於改變餅乾到期時間是在會話分量集合配置爲餅乾壽命:

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

當用戶登錄,餅乾到期時間在當前的例子中是一週後。