我正在解決 Yii2 中用戶自發/隨機注銷并回傳登錄視圖的問題。我想在代碼中插入一些臨時的 Yii::info 登錄,其中會話因任何原因而終止,而不是用戶正常注銷。例如,如果設定了用戶的會話 cookie,但它在 session => savePath 目錄中的相應檔案丟失,則會話將終止,我想記錄這發生了。
起初,我嘗試在呼叫 denyCallback 之前將其記錄在 yii\filters\AccessControl::beforeAction 方法中,但每次訪客用戶點擊登錄頁面(登錄之前)時都會記錄。我正在尋找一個更合適的地方來放置這種日志記錄行為。
uj5u.com熱心網友回復:
通過將以下內容添加到我的 web.php 配置中,我得到了我想要的日志記錄行為。
$config = [
//...
'as beforeRequest' => [
//...
'denyCallback' => function () {
if (Yii::$app->request->isAjax === false)
{
// If the user gets punted back to the login screen, log this event
Yii::info('User redirected to login', __METHOD__);
}
return Yii::$app->response->redirect(['site/login']);
},
],
//...
];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467147.html
