diff --git a/examples/public/client_credentials.php b/examples/public/client_credentials.php index 1e671d3a..684e3003 100644 --- a/examples/public/client_credentials.php +++ b/examples/public/client_credentials.php @@ -14,19 +14,33 @@ use Slim\Http\Response; include(__DIR__ . '/../vendor/autoload.php'); -// Setup the authorization server -$server = new Server('file://' . __DIR__ . '/../private.key'); - -// Init our repositories -$clientRepository = new ClientRepository(); -$scopeRepository = new ScopeRepository(); -$accessTokenRepository = new AccessTokenRepository(); - -// Enable the client credentials grant on the server -$server->enableGrantType(new ClientCredentialsGrant($clientRepository, $scopeRepository, $accessTokenRepository)); - // App -$app = new App([Server::class => $server]); +$app = new App([ + Server::class => function () { + + // Init our repositories + $clientRepository = new ClientRepository(); + $scopeRepository = new ScopeRepository(); + $accessTokenRepository = new AccessTokenRepository(); + + $privateKeyPath = 'file://' . __DIR__ . '/../private.key'; + $publicKeyPath = 'file://' . __DIR__ . '/../public.key'; + + // Setup the authorization server + $server = new Server( + $clientRepository, + $accessTokenRepository, + $scopeRepository, + $privateKeyPath, + $publicKeyPath + ); + + // Enable the client credentials grant on the server with a token TTL of 1 hour + $server->enableGrantType(new ClientCredentialsGrant(), new \DateInterval('PT1H')); + + return $server; + } +]); $app->post('/access_token', function (Request $request, Response $response) { /** @var Server $server */ diff --git a/examples/public/password.php b/examples/public/password.php index de73d63d..1be26880 100644 --- a/examples/public/password.php +++ b/examples/public/password.php @@ -16,28 +16,38 @@ use Slim\Http\Response; include(__DIR__ . '/../vendor/autoload.php'); -// Setup the authorization server -$server = new Server('file://' . __DIR__ . '/../private.key'); - -// Init our repositories -$userRepository = new UserRepository(); -$clientRepository = new ClientRepository(); -$scopeRepository = new ScopeRepository(); -$accessTokenRepository = new AccessTokenRepository(); -$refreshTokenRepository = new RefreshTokenRepository(); - -// Enable the client credentials grant on the server -$passwordGrant = new PasswordGrant( - $userRepository, - $clientRepository, - $scopeRepository, - $accessTokenRepository, - $refreshTokenRepository -); -$server->enableGrantType($passwordGrant); - // App -$app = new App([Server::class => $server]); +$app = new App([ + Server::class => function () { + + // Init our repositories + $clientRepository = new ClientRepository(); + $scopeRepository = new ScopeRepository(); + $accessTokenRepository = new AccessTokenRepository(); + $userRepository = new UserRepository(); + $refreshTokenRepository = new RefreshTokenRepository(); + + $privateKeyPath = 'file://' . __DIR__ . '/../private.key'; + $publicKeyPath = 'file://' . __DIR__ . '/../public.key'; + + // Setup the authorization server + $server = new Server( + $clientRepository, + $accessTokenRepository, + $scopeRepository, + $privateKeyPath, + $publicKeyPath + ); + + // Enable the client credentials grant on the server with a token TTL of 1 hour + $server->enableGrantType( + new PasswordGrant($userRepository, $refreshTokenRepository), + new \DateInterval('PT1H') + ); + + return $server; + } +]); $app->post('/access_token', function (Request $request, Response $response) { /** @var Server $server */