TrackLastWebPageMiddleware.php 836 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. class TrackLastWebPageMiddleware
  7. {
  8. public function handle(Request $request, Closure $next): Response
  9. {
  10. $response = $next($request);
  11. if (!$request->isMethod('GET')) {
  12. return $response;
  13. }
  14. if ($request->ajax() || $request->expectsJson() || $request->wantsJson()) {
  15. return $response;
  16. }
  17. if ($request->routeIs('set-year')) {
  18. return $response;
  19. }
  20. $contentType = (string) $response->headers->get('Content-Type');
  21. if (!str_contains($contentType, 'text/html')) {
  22. return $response;
  23. }
  24. session(['last_web_url' => $request->fullUrl()]);
  25. return $response;
  26. }
  27. }