Commit 4f4d378d authored by Taylor Otwell's avatar Taylor Otwell

Merge pull request #3685 from JosephSilber/multi-auth

Allow passing multiple gaurds to the auth middleware
parents 8aa5af73 703197e2
...@@ -12,19 +12,40 @@ class Authenticate ...@@ -12,19 +12,40 @@ class Authenticate
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @param string|null $guard * @param string ...$guards
* @return mixed * @return mixed
*/ */
public function handle($request, Closure $next, $guard = null) public function handle($request, Closure $next, ...$guards)
{ {
if (Auth::guard($guard)->guest()) { if ($this->check($guards)) {
if ($request->ajax() || $request->wantsJson()) { return $next($request);
return response('Unauthorized.', 401); }
} else {
return redirect()->guest('login'); if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
/**
* Determine if the user is logged in to any of the given guards.
*
* @param array $guards
* @return bool
*/
protected function check(array $guards)
{
if (empty($guards)) {
return Auth::check();
}
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return true;
} }
} }
return $next($request); return false;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment