- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我已经通过覆盖各种类/方法设法更改了代码中的密码字段。但是我在尝试覆盖 EloquentUserProvider 和它的 validateCredentials() 方法后,我不断收到错误 -
ErrorException in AuthUserProvider.php line 15:
Argument 1 passed to App\Providers\AuthUserProvider::__construct() must be an instance of App\Helpers\Sha1Hasher, instance of Illuminate\Foundation\Application given
我创建了一个覆盖 App\Providers\AuthUserProvider.php -
namespace App\Providers;
use Illuminate\Contracts\Auth\Authenticatable as UserContract;
use App\Helpers\Sha1Hasher as HasherContract;
use Illuminate\Auth\EloquentUserProvider;
class AuthUserProvider extends EloquentUserProvider
{
/**
* AuthUserProvider constructor.
* @param HasherContract $hasher
* @param string $model
*/
public function __construct(HasherContract $hasher, $model)
{
parent::__construct($hasher, $model);
}
/**
* Validate a user against the given credentials.
*
* @param \Illuminate\Contracts\Auth\Authenticatable $user
* @param array $credentials
* @return bool
*/
public function validateCredentials(UserContract $user, array $credentials)
{
// $plain = $credentials['sha_pass_hash'];
// return HasherContract::check(...);;
}
}
使用 Laravel 5.2.22。
最佳答案
你是如何“覆盖” EloquentUserProvider
的实例的?因为 Laravel 正在根据您设置的 auth.driver
创建 Auth
实例。
检查 Illuminate/Auth/CreatesUserProviders@createUserProvider
它是硬编码的,基于驱动程序,加载 EloquentUserProvider
。您可以尝试将您的实例绑定(bind)
到Illuminate\Auth\EloquentUserProvider
。
你得到的错误,意味着你的 __construct
没有得到正确的输入。根据您的代码的外观,它基本上是这样做的:
new AuthUserProvider($app);
但是它应该做什么:
return new EloquentUserProvider($this->app['hash'], $config['model']);
如果它不起作用,请尝试通过 AuthManager
类注册自定义提供程序。请参阅 Illuminate\Auth\AuthManager@provider
第 +- 266 行。
也许!!未测试:
auth()->provider(AuthUserProvider::class);
关于php - Laravel 覆盖 EloquentUserProvider 以更改 validateCredentials() 中的密码字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35728219/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!