我正在尝试处理从空闲/过期会话启动的ajax请求(可能页面处于打开状态且会话已过期)。我编写了下面的中间件,但它没有按预期工作:
namespace App\Http\Middleware;
use Closure;
class AjaxSessionCheck
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!\Auth::check())
{
if($request->ajax())
{
return response()->json(['Session_error'=>'Session Expired'], 401);
}
}
return $next($request);
}
}
我还尝试将此代码添加到Auth中间件,但没有运气。 奇怪足够的身份验证(用户登录)ajax请求被此检测到。
失去2天寻找解决方案。绝望的电话在这里。
答案 0 :(得分:0)
使用优化的代码进行性能使用auth :: check和request-> ajax()在AND运算符的相同if条件下。只需在配置文件中尝试会话到期
答案 1 :(得分:0)
这是因为会话在中间件之后运行,你可以在这里看到reference。如果您想检查该会话是否已过期,我认为您应该使用中间件而不是中间件之前