From 8e3f4dd427d0ebe61e37184fcf20a5bc5922d265 Mon Sep 17 00:00:00 2001 From: Sarah Savage Date: Sun, 13 Oct 2024 11:31:08 -0400 Subject: [PATCH] Adding random generation of an API token for the repository --- config/routes.php | 2 ++ src/ConfigProvider.php | 4 ++++ .../Api/V1/ApiTokenIssuanceHandler.php | 17 +++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 src/Repository/Api/V1/ApiTokenIssuanceHandler.php diff --git a/config/routes.php b/config/routes.php index 5359bcf..fe00e33 100644 --- a/config/routes.php +++ b/config/routes.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use AspirePress\AspireCloud\Repository\Api\V1\ApiTokenIssuanceHandler; use AspirePress\AspireCloud\V1\CatchAll\Handlers\CatchAllHandler; use Mezzio\Application; use Mezzio\MiddlewareFactory; @@ -26,5 +27,6 @@ */ return static function (Application $app, MiddlewareFactory $factory, ContainerInterface $container): void { + $app->post('/repository/api/v1/apitoken', ApiTokenIssuanceHandler::class, 'repository.api.v1.apitoken'); $app->route('/{path:.*}', CatchAllHandler::class, ['GET', 'POST'], 'app.home'); }; diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php index aa87c46..b4477f3 100644 --- a/src/ConfigProvider.php +++ b/src/ConfigProvider.php @@ -6,6 +6,7 @@ use AspirePress\AspireCloud\Data\Factories\PluginRepositoryFactory; use AspirePress\AspireCloud\Data\Repositories\PluginRepository; +use AspirePress\AspireCloud\Repository\Api\V1\ApiTokenIssuanceHandler; use Aura\Sql\ExtendedPdoInterface; use Laminas\ServiceManager\Factory\InvokableFactory; use Laminas\Stratigility\Middleware\ErrorHandler; @@ -20,6 +21,9 @@ public function __invoke(): array { return [ 'dependencies' => [ + 'invokables' => [ + ApiTokenIssuanceHandler::class => ApiTokenIssuanceHandler::class, + ], 'delegators' => [ ErrorHandler::class => [LoggingListenerDelegatorFactory::class], ], diff --git a/src/Repository/Api/V1/ApiTokenIssuanceHandler.php b/src/Repository/Api/V1/ApiTokenIssuanceHandler.php new file mode 100644 index 0000000..7e6b920 --- /dev/null +++ b/src/Repository/Api/V1/ApiTokenIssuanceHandler.php @@ -0,0 +1,17 @@ + bin2hex(random_bytes(16))]); + } +} \ No newline at end of file