Laravel验证::后卫只工作了默认

问题描述 投票:0回答:1

第一次,我问什么在这里之前,而不是最有经验,所以请漂亮的!

我在我的DB中设置了两个表 - 用户和代理商。

我曾尝试多种方式,以登录两个用户,并会非常喜欢他们能够从同一个表单进行登录并做了检查两个卫兵,看是否证书是有效的,但由于某种原因做这样的尝试时,警卫只会为我的默认在我auth.php文件设置为工作表中。

逆天我试图:

Auth::guard('web')->attempt($credentials)

Auth::guard('agent')->attempt($credentials)

如果我把我的默认后卫在我auth.php文件到网络守卫其工作正常,并记录在从用户表的匹配凭据,但尝试代理人资格证书是表明在我的网络选项卡时:

登录 -

POST 302发现

代理 -

GET 302发现

登录 -

获得200 OK

因此,它几乎就像它承认将凭据是否正确,并重新定向但随后犯规上使用选定的警卫携带?

LoginController - DoLogin

Auth.php configeration

php laravel authentication laravel-5 guard
1个回答
0
投票

config/auth.php复制下面的代码:

<?php
return [

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'agent' => [
            'driver' => 'session',
            'provider' => 'agents',
        ]

    ],

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'agents' => [
            'driver' => 'eloquent',
            'model' => App\Agent::class,
        ]
    ],

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'agents' => [
            'provider' => 'agents',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],
];

在您登录控制器:

 public function login(Request $request)
    {
      $this->validate($request, [
        'email'   => 'required|email',
        'password' => 'required|min:6'
      ]);

      if (Auth::guard('agent')->attempt(['email' => $request->email, 'password' => $request->password])) {
        return redirect('/dashboard/agent');
      }

      if(Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password])){
         return redirect('/dashboard/user');
      }

        return redirect()->back()->withInput($request->input());


    }
© www.soinside.com 2019 - 2024. All rights reserved.