У меня есть существующий проект с Laravel 5.5
. Он имеет USER
логин и Admin
логин. Теперь я хочу добавить 3-й аутентификационный логин AUTHOR
. Я скопировал вставленные файлы администратора в папку автора и отредактировал их, заменив администратора автором. Но это не работает, даже если я добавил автора в 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;
}
}
Redirectif authenticated
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);
}