如何重寫Laravel 的attempt方法
1 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
默認是使用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());
- 1 回答
- 0 關注
- 2403 瀏覽
添加回答
舉報
0/150
提交
取消