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

回到顶部