在 Yii2 中记录会话销毁
Logging session destroy in Yii2
我正在解决 Yii2 中用户 spontaneously/randomly 注销并返回登录视图的问题。我想在代码中插入一些临时的 Yii::info 登录,其中会话因用户正常注销以外的任何原因终止。例如,如果设置了用户的会话 cookie,但它在会话 => savePath 目录中的相应文件丢失,会话将终止,我想记录这发生了。
起初,我尝试在调用 denyCallback 之前将其记录在 yii\filters\AccessControl::beforeAction 方法中,但每次来宾用户点击登录页面(登录前)时都会记录。我正在寻找一个更合适的地方来放置此日志记录行为。
通过将以下内容添加到我的 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']);
},
],
//...
];
我正在解决 Yii2 中用户 spontaneously/randomly 注销并返回登录视图的问题。我想在代码中插入一些临时的 Yii::info 登录,其中会话因用户正常注销以外的任何原因终止。例如,如果设置了用户的会话 cookie,但它在会话 => savePath 目录中的相应文件丢失,会话将终止,我想记录这发生了。
起初,我尝试在调用 denyCallback 之前将其记录在 yii\filters\AccessControl::beforeAction 方法中,但每次来宾用户点击登录页面(登录前)时都会记录。我正在寻找一个更合适的地方来放置此日志记录行为。
通过将以下内容添加到我的 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']);
},
],
//...
];