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