* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace FOS\OAuthServerBundle\Command; use FOS\OAuthServerBundle\Model\AuthCodeManagerInterface; use FOS\OAuthServerBundle\Model\TokenManagerInterface; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class CleanCommand extends Command { protected static $defaultName = 'fos:oauth-server:clean'; private $accessTokenManager; private $refreshTokenManager; private $authCodeManager; public function __construct( TokenManagerInterface $accessTokenManager, TokenManagerInterface $refreshTokenManager, AuthCodeManagerInterface $authCodeManager ) { parent::__construct(); $this->accessTokenManager = $accessTokenManager; $this->refreshTokenManager = $refreshTokenManager; $this->authCodeManager = $authCodeManager; } /** * {@inheritdoc} */ protected function configure() { parent::configure(); $this ->setDescription('Clean expired tokens') ->setHelp(<<%command.name% command will remove expired OAuth2 tokens. php %command.full_name% EOT ) ; } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output): int { foreach ([$this->accessTokenManager, $this->refreshTokenManager, $this->authCodeManager] as $service) { $result = $service->deleteExpired(); $output->writeln(sprintf('Removed %d items from %s storage.', $result, get_class($service))); } return 0; } }