问题描述
我想为来自同一表但角色不同的用户实施多种身份验证。 我的目标是,如果用户正在通过手机查看,则系统将搜索角色=用户的User对象,如果来自pc,则系统将搜索角色= admin的用户对象。
为此,我在config / auth.PHP中添加了2个自定义防护:
'admin' => [
'driver' => 'custom-admin','provider' => 'users',],'user' => [
'driver' => 'custom-user',
我还将逻辑添加到LoginController
protected function attemptLogin(Request $request)
{
$is_mobile = (isset($request->is_mobile) && $request->is_mobile == 'true') ? true : false;
if($is_mobile == true)
{
return $this->guard('user')->attempt(
$this->credentials($request),$request->filled('remember')
);
}
else
{
return $this->guard('admin')->attempt(
$this->credentials($request),$request->filled('remember')
);
}
}
,我还尝试在AuthServiceProvider boot()方法中修改防护措施:
Auth::viaRequest('custom-admin',function ($request) {
return User::where('email',$request->email)->where('password',Hash::make($request->password))->where('role','admin')->first();
});
Auth::viaRequest('custom-user','user')->first();
});
我的问题是如何覆盖警卫队的try方法,以便它使用我需要的逻辑? 我想念什么,我还要定义什么?
在此状态下收到的当前错误:
Method Illuminate\Auth\RequestGuard::attempt does not exist.
提前谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)