我正在尝试处理从空闲/过期会话启动的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);
//throw new AuthenticationException('Unauthenticated');
}
}
return $next($request);
}
}
要检查这是否有效,我从两个单独的选项卡登录到包含表单的同一页面,然后从其中一个选项卡中注销,使得会话在另一个选项卡上也无效。然后我发起了一个ajax请求(用户单击一个删除按钮)。
非常感谢任何对正确方向的帮助!
答案 0 :(得分:0)
为了更好地覆盖使用if ($request->isJson() || $request->wantsJson()) {