私は同じ問題に直面していましたが、PasswordBrokerの一部の機能を無効にする必要がありました。ウェブ上の調査の多くの後、多くがそうしようとする試みが失敗した、私は次のような実装になってしまった:
は私がCustomPasswordBrokerManagerインスタンスを登録のApp \プロバイダ内CustomPasswordResetServiceProviderを作成しました。 のconfig/app.phpコメントアウト行で
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Services\CustomPasswordBrokerManager;
class CustomPasswordResetServiceProvider extends ServiceProvider{
protected $defer = true;
public function register()
{
$this->registerPasswordBrokerManager();
}
protected function registerPasswordBrokerManager()
{
$this->app->singleton('auth.password', function ($app) {
return new CustomPasswordBrokerManager($app);
});
}
public function provides()
{
return ['auth.password'];
}
}
:
//Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
、コメントを追加しました:
App\Providers\CustomPasswordResetServiceProvider::class,
内部のApp \ Services]フォルダがCustomPasswordBrokerManagerを作成し、コンテキストをコピーしますPasswordBrokerManagerの位置はです。 が点灯し、\認証\パスワード\ PasswordBrokerManager.phpは
はその後、私のCustomPasswordProviderクラスのインスタンスを返すように機能決意を変更しました。 App \ Services]フォルダ内の最後に
protected function resolve($name)
{
$config = $this->getConfig($name);
if (is_null($config)) {
throw new InvalidArgumentException("Password resetter [{$name}] is not defined.");
}
return new CustomPasswordBroker(
$this->createTokenRepository($config),
$this->app['auth']->createUserProvider($config['provider'])
);
}
私がであるデフォルトPasswordBroker拡張CustomPasswordBrokerクラス作成:
を照らし\認証\パスワード\ PasswordBrokerを、私は必要な機能を上書きします。
use Illuminate\Auth\Passwords\PasswordBroker as BasePasswordBroker;
class CustomPasswordBroker extends BasePasswordBroker
{
// override the functions that you need here
}
これは最高の実装ですが、それは私のために働いたかどうかわかりません。
これは非常に似通った実装で、やってしまった。非常によくディレクトリとすべての識別と説明されています。 +1し、正しいとマークしてください! –
パスワードのリセットに必要なパスワードの長さを変更するだけでした。 6文字の最小長さは、ララベルコードのかなり深いところに埋め込まれていますので、ここであなたの答えを変更するだけです。どうもありがとうございます! – johnnydoe82
ありがとうございます。私はこのパスワードブローカーとパスワードブローカーマネージャの混乱に立ち往生していた。真剣に、私は彼らがどうやってそのような悪い方法で単純なものを複雑にしたのかを理解できません。 また、Laravel 5.4でこれを行っている人には、ここに示したものよりもサービスプロバイダの 'register'メソッドに若干の違いがあります。基本的に 'registerPasswordBroker'メソッドは、独自のカスタム' CustomPasswordBrokerManager'インスタンスを使用する部分を除いて 'Illuminate \ Auth \ Passwords \ PasswordResetServiceProvider'のようにコピーする必要があります。 – racl101