PHP code example of flownative / openidconnect-client
1. Go to this page and download the library: Download flownative/openidconnect-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
flownative / openidconnect-client example snippets
// $this->middlewareSettings is injected with
// #[Flow\InjectConfiguration(path: 'middleware', package: 'Flownative.OpenIdConnect.Client')]
$cookieSettings = CookieSettings::fromMiddlewareSettings($this->middlewareSettings);
$nonce = Nonce::generate();
$uri = $client->startAuthorization($returnToUri, 'profile email', $nonce);
$this->response->setCookie($nonce->createCookie($cookieSettings));
$this->response->setHttpHeader('Cache-Control', 'no-store');
$this->redirectToUri($uri);
class BillingService
{
public function sendAuthenticatedRequest(string $relativeUri, string $method = 'GET', array $bodyFields = []): ResponseInterface
{
$openIdConnectClient = new OpenIdConnectClient('test');
$accessToken = $openIdConnectClient->getAccessToken(
'test',
$this->clientId,
$this->clientSecret,
'',
Authorization::GRANT_CLIENT_CREDENTIALS,
$this->additionalParameters
);
$httpClient = new Client(['allow_redirects' => false]);
return $httpClient->request(
$method,
trim($this->apiBaseUri, '/') . '/' . $relativeUri,
[
'headers' =>
[
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $accessToken->getToken()
],
'body' => ($bodyFields !== [] ? \GuzzleHttp\json_encode($bodyFields) : '')
]
);
}
}
abstract class AbstractApiController extends ActionController
{
/**
* @Flow\Inject
* @var Context
*/
protected $securityContext;
/**
* @var IdentityToken|null
*/
protected $identityToken;
/**
* @return void
*/
public function initializeAction()
{
parent::initializeAction();
$account = $this->securityContext->getAccount();
$identityToken = $account->getCredentialsSource();
if ($identityToken instanceof IdentityToken) {
$this->identityToken = $identityToken;
}
}
}
…
providerOptions:
leeway: 30
…