setName('oauth:add-client') ->setDescription('Adding of OAuth client.') ->addArgument('client-id', InputArgument::OPTIONAL, 'Client ID') ->addArgument('preapproved', InputArgument::OPTIONAL, 'Preapproved'); } public function execute(InputInterface $input, OutputInterface $output): int { $clientId = $input->getArgument('client-id') ? $input->getArgument('client-id') : bin2hex(random_bytes(8)); $clientSecret = bin2hex(random_bytes(20)); $oAuthClient = new OAuthClient(); $oAuthClient->setClientId($clientId); $oAuthClient->setClientSecret($clientSecret); $oAuthClient->setCreatedDate(new DateTime()); if ($input->getArgument('preapproved')) { $oAuthClient->setPreapproved($input->getArgument('preapproved')); } try { \Container::$persistentDataManager->saveToDb($oAuthClient); } catch (\Exception $e) { $output->writeln('Adding OAuth client failed!'); $output->writeln(''); $output->writeln((string) $e); $output->writeln(''); return 1; } $output->writeln('OAuth client was successfully added!'); $output->writeln('Client ID: ' . $clientId . ''); $output->writeln('Client secret: ' . $clientSecret . ''); return 0; } }