由于在 initialize 方法中进行重定向而造成的重定向循环。当 session('?user_id') 检查失败时,你的代码会尝试重定向到登录页面。如果登录页面或者处理登录的控制器也继承自同一个基类(或者有类似的 initialize 检查),这将导致每次尝试访问登录页面时都会再次执行重定向,从而陷入无限循环。
解决方案
当运行user/login时候不会运行initialize方法的判断session部分,直接返回了
protected function initialize()
{
parent::initialize();
// 获取当前控制器和方法名
$controller = request()->controller();
$action = request()->action();
// 排除登录页面的会话检查
if ($controller == 'User' && $action == 'login') {
return;
}
if (!session('?user_id')) {
redirect('user/login')->send();
exit;
}
}
标签:重定向,登录,解决方案,session,user,initialize,页面
From: https://www.cnblogs.com/79524795-Tian/p/18153194