getPayload(); } catch (JWTException $e) { return $next($request); } // Validate IP and User Agent if ($payload) { if ($frontApiSecret = $request->header(self::API_SERVER_SECRET_HEADER_NAME)) { // If it's a trusted SSR request, skip the rest if ($frontApiSecret === config('app.front_api_secret')) { return $next($request); } } $error = null; if (!\Hash::check($request->ip(), $payload->get('ip'))) { $error = 'Origin IP is invalid'; } if (!\Hash::check($request->userAgent(), $payload->get('ua'))) { $error = 'Origin User Agent is invalid'; } if ($error) { auth()->invalidate(); return response()->json([ 'message' => $error ], 403); } } return $next($request); } }