我有一个具有 Laravel 5.5
的现有项目。它具有USER
登录名和Admin
登录名。现在,我想添加一个第三身份验证AUTHOR
登录。我已将admin文件复制粘贴到author文件夹中,并对其进行了编辑,以author代替admin。但是,即使我在 handle.php
和config/auth
中添加了作者,也无法正常工作。
我不想使用角色。
这是我的代码:
Handler.php
protected function unauthenticated($request, AuthenticationException $exception) {
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
$guard = array_get($exception->guards(),0);
switch ($guard) {
case 'admin':
return redirect()->guest(route('admin.login'));
break;
default:
return redirect()->guest(route('login'));
break;
}
}
protected function unauthenticated($request, AuthenticationException $exception) {
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
$guard = array_get($exception->guards(),0);
switch ($guard) {
case 'author':
return redirect()->guest(route('author.login'));
break;
default:
return redirect()->guest(route('login'));
break;
}
}
经过身份验证的重定向
class RedirectIfAuthenticated {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null) {
switch ($guard) {
case 'admin':
if (Auth::guard($guard)->check()) {
return redirect('/admin-dashboard');
}
break;
default:
if (Auth::guard($guard)->check()) {
return redirect('/user/dashboard');
}
break;
}
return $next($request);
}