如何在laravel中制作三级认证系统?

时间:2018-11-05 12:52:37

标签: php laravel

我有一个具有 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);
    }

0 个答案:

没有答案