Laravel要重写Router.php里面的`auth`方法,应该在什么地方重写
发布网友
发布时间:2022-05-09 16:25
我来回答
共2个回答
热心网友
时间:2023-10-09 07:38
默认是使用eloquent作为认证驱动器,所以看看Illuminate\Auth\EloquentUserProvider里面的实现
public function validateCredentials(UserContract $user, array $credentials) { $plain = $credentials['password']; return $this->hasher->check($plain, $user->getAuthPassword()); }
所以如果要改验证的逻辑,可以继承原有的驱动器,然后重写validateCredentials里面的逻辑
class TestUserProvider extend EloquentUserProvider{ public function validateCredentials(UserContract $user, array $credentials) { $plain = $credentials['password']; return md5($plain) == $user->getAuthPassword(); }}
最后设置驱动器,建议加载AppServiceProvider的boot()里面
Auth::setProvider(new TestUserProvider());
热心网友
时间:2023-10-09 07:39
这个我不是太清楚,建议楼主去后盾人那里看看,哪里有很多相关的视频教学