laravel 5.4,添加二次验证(管理面板)

laravel 5.4, adding second authentication (admin panel)

我想在 laravel 5.4 中为管理页面创建第二个身份验证。


首先让我描述一下我的问题: 我通过 'web'-guard 有一个可用的用户登录(默认 laravel 授权)。现在我想为管理面板创建第二个身份验证。我还有另一个 table 用于存储名称、令牌(类似于密码)和权限级别。

second/separate table 是页面开发所针对的系统提供的依赖项,因此我无法更改它。

我有管理面板的登录页面,但是当我尝试进行身份验证时,每次都会被重定向回登录页面。


我已经用谷歌搜索了整个事情并找到了一些很好的例子:

  1. https://jamesmcfadden.co.uk/custom-authentication-in-laravel-with-guards-and-user-service-providers

    • 其他links在控制器粘贴在pastebin上(link在下面)

但我想不通。


这是我已经做的:


所以我需要回答的问题是:

  1. 我哪里遗漏了什么?我哪里搞砸了?

希望你能帮我解决这个问题,谢谢你的帮助!

如果我没有回答你的问题,我很抱歉,但是你不能在你的用户 table 中添加一个简单的列,比如 is_admin 并且只授权 [=11] 的用户=] 使用中间件访问管理面板,而不是登录两次?

我使用以下自定义登录方法解决了这个问题:

public function elevate(Request $request)
{
    // login
    $this->validateLogin($request);
    $admin = Admin::where('mAccount', '=', Auth::guard('web')->user()->login)
       ->where('mToken', '=', $request->input('mToken'))->first();
    if($admin){
       Auth::guard('admin')->login($admin);
        return redirect('/admin/dashboard');
    }
    else{
        throw new \ErrorException('Elevation failed!');
    }
}

protected function validateLogin(Request $request)
{
    $this->validate($request, [
        'mToken' => 'required|string|min:8',
        'g-recaptcha-response' => 'required|captcha'
    ]);
}