123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
-
- namespace Illuminate\Auth\Middleware;
-
- use Closure;
- use Illuminate\Auth\AuthenticationException;
- use Illuminate\Contracts\Auth\Factory as Auth;
-
- class Authenticate
- {
- /**
- * The authentication factory instance.
- *
- * @var \Illuminate\Contracts\Auth\Factory
- */
- protected $auth;
-
- /**
- * Create a new middleware instance.
- *
- * @param \Illuminate\Contracts\Auth\Factory $auth
- * @return void
- */
- public function __construct(Auth $auth)
- {
- $this->auth = $auth;
- }
-
- /**
- * Handle an incoming request.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @param string[] ...$guards
- * @return mixed
- *
- * @throws \Illuminate\Auth\AuthenticationException
- */
- public function handle($request, Closure $next, ...$guards)
- {
- $this->authenticate($guards);
-
- return $next($request);
- }
-
- /**
- * Determine if the user is logged in to any of the given guards.
- *
- * @param array $guards
- * @return void
- *
- * @throws \Illuminate\Auth\AuthenticationException
- */
- protected function authenticate(array $guards)
- {
- if (empty($guards)) {
- return $this->auth->authenticate();
- }
-
- foreach ($guards as $guard) {
- if ($this->auth->guard($guard)->check()) {
- return $this->auth->shouldUse($guard);
- }
- }
-
- throw new AuthenticationException('Unauthenticated.', $guards);
- }
- }
|