Laravel身份验证模型更改
我有两个用于管理员和客户端的表格,针对每种类型的用户使用两种不同的登录方法。 我已经为admin使用了try()方法。我正在尝试为客户端创建JWTAuthentication。在这一刻,当我试图验证客户端登录时,laravel查询里面的管理表,而我想要它在客户端表内查询。我试图设置配置来专门研究客户端模型。但它仍在考虑管理员。Laravel身份验证模型更改
如何告诉laravel避免在客户端尝试登录时查看管理表?
if($dbPass==$password)     { 
     //find secret api key and send it to curl 
     //$this->callTeamworkApi($query->secretApiKey); 
     //set session 
    //JWT authenticate 
    //$credentials = ["email"=>$email,"password"=>$password]; 
     //$credentials = $request->all('email','password'); 
     $credentials =[]; 
     $credentials['email'] = $email; 
     $credentials['password'] = $request->password; 
     try{ 
      \Config::set('auth.model', 'Client'); 
      \Config::set('auth.table' , 'clients'); 
      if(! $token = JWTAuth::attempt($credentials)) 
       { 
       return response()->json([ 
        'response' => 'Some error with user credentials' 
       ]); 
       }else{ 
       // $request->session()->put('secretApiKey', $query->secretApiKey); 
       // $request->session()->put('userEmail', $sessionEmail); 
       // $request->session()->put('userId', $sessionId); 
       // $request->session()->put('userName', $sessionName); 
       // $request->session()->put('timeCreated', $timeCreated); 
       //find user details and put them inside session array 
       $msg = "Login_checked"; 
       return response()->json(["token"=>compact('token'), "msg"=> $msg]); 
      } 
     }catch(JWTExceptions $err){ 
      return response()->json(['response'=>$err]); 
     } 
    }else{ 
     $msg = "Password_wrong"; 
    } 
回答:
所有身份验证驱动程序都有一个用户提供程序。这定义了如何将用户实际从数据库或其他存储机制中检索出来,以便该应用程序用来保存用户数据。
如果您有多个用户表或模型,您应该配置多个代表每个模型/表的 源。
这应该在config/auth.php文件中完成。
'providers' => [     'admins' => [ 
     'driver' => 'eloquent', 
     'model' => App\Admin::class, 
    ], 
    'clients' => [ 
     'driver' => 'eloquent', 
     'model' => App\Client::class, 
    ], 
], 
这个工程在Laravel 5,我不确定关于版本4和以下。
以上是 Laravel身份验证模型更改 的全部内容, 来源链接: utcz.com/qa/263206.html

