Как сделать 3-х уровневую систему аутентификации в laravel? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть существующий проект с 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...