PasswordBrokerManager.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Services\Auth;
  3. use Illuminate\Auth\Passwords\PasswordBrokerManager as BasePasswordBrokerManager;
  4. use InvalidArgumentException;
  5. class PasswordBrokerManager extends BasePasswordBrokerManager
  6. {
  7. /**
  8. * Create a token repository instance based on the given configuration.
  9. *
  10. * @param array $config
  11. * @return \Illuminate\Auth\Passwords\TokenRepositoryInterface
  12. */
  13. protected function createTokenRepository(array $config)
  14. {
  15. return new ServiceTokenRepository();
  16. }
  17. /**
  18. * Resolve the given broker.
  19. *
  20. * @param string $name
  21. * @return PasswordBroker
  22. *
  23. * @throws InvalidArgumentException
  24. */
  25. protected function resolve($name)
  26. {
  27. $config = $this->getConfig($name);
  28. if (is_null($config)) {
  29. throw new InvalidArgumentException("密码重置器 [{$name}] 未定义");
  30. }
  31. return new PasswordBroker(
  32. $this->createTokenRepository($config),
  33. $this->app['auth']->createUserProvider($config['provider'] ?? null)
  34. );
  35. }
  36. }