PHP code example of digitalcz / openid-connect
1. Go to this page and download the library: Download digitalcz/openid-connect 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/ */
digitalcz / openid-connect example snippets
use DigitalCz\OpenIDConnect\OidcFactory;
use Symfony\Component\HttpClient\HttpClient;
$httpClient = HttpClient::create();
$oidc = OidcFactory::create(
httpClient: $httpClient,
issuer: 'https://auth.example.com',
clientId: 'my-client-id',
clientSecret: 'my-client-secret',
redirectUri: 'https://myapp.example.com/callback',
);
use DigitalCz\OpenIDConnect\OidcFactory;
use DigitalCz\OpenIDConnect\Config\IssuerMetadata;
use Symfony\Component\HttpClient\HttpClient;
$httpClient = HttpClient::create();
$issuerMetadata = new IssuerMetadata([
'authorization_endpoint' => 'https://auth.example.com/authorize',
'token_endpoint' => 'https://auth.example.com/token',
'jwks_uri' => 'https://auth.example.com/.well-known/jwks.json',
'issuer' => 'https://auth.example.com',
]);
$oidc = OidcFactory::create(
httpClient: $httpClient,
issuer: $issuerMetadata,
clientId: 'my-client-id',
clientSecret: 'my-client-secret',
redirectUri: 'https://myapp.example.com/callback',
);
$authorizationCode = $oidc->authorizationCode();
$url = $authorizationCode->createAuthorizationUrl([
'state' => 'random-state',
'nonce' => 'random-nonce'
]);
// Redirect user to $url
// Get the authorization code from the callback URL
$code = $_GET['code'];
$nonce = 'random-nonce'; // Same nonce used in step 1
$tokens = $authorizationCode->fetchTokens($code, $nonce);
echo "Access Token: " . $tokens->accessToken() . PHP_EOL;
echo "ID Token: " . $tokens->idToken() . PHP_EOL;
echo "Refresh Token: " . $tokens->refreshToken() . PHP_EOL;
$clientCredentials = $oidc->clientCredentials();
$tokens = $clientCredentials->fetchTokens();
echo "Access Token: " . $tokens->accessToken() . PHP_EOL;
use DigitalCz\OpenIDConnect\ResourceServer\JwtAccessToken;
use DigitalCz\OpenIDConnect\ResourceServer\OpaqueAccessToken;
use DigitalCz\OpenIDConnect\Util\JWT;
$resourceServer = $oidc->resourceServer();
$accessToken = new JwtAccessToken($jwt);
$validatedToken = $resourceServer->introspect($accessToken);
echo "Token is valid for subject: " . $validatedToken->sub() . PHP_EOL;
echo "Token expires at: " . date('Y-m-d H:i:s', $validatedToken->exp()) . PHP_EOL;