Authenticate.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Auth\AuthenticationException;
  5. use Illuminate\Auth\Middleware\Authenticate as Middleware;
  6. use Illuminate\Http\Request;
  7. class Authenticate extends Middleware
  8. {
  9. /**
  10. * To provide a route whitelist
  11. *
  12. * 因为middleware的特性,将白名单挂载在middleware中而非config中
  13. *
  14. * @var array|string[]
  15. */
  16. protected $whiteList = [
  17. ];
  18. /**
  19. * Handle an incoming request.
  20. *
  21. * @param Request $request
  22. * @param Closure $next
  23. * @param string[] ...$guards
  24. * @return mixed
  25. *
  26. * @throws AuthenticationException
  27. */
  28. public function handle($request, Closure $next, ...$guards)
  29. {
  30. if (array_search($request->getPathInfo(),$this->whiteList)===false)
  31. $this->authenticate($request, $guards);
  32. return $next($request);
  33. }
  34. /**
  35. * Get the path the user should be redirected to when they are not authenticated.
  36. *
  37. * @param Request $request
  38. * @return string
  39. */
  40. protected function redirectTo($request) :string
  41. {
  42. return "/login";
  43. }
  44. }