1. Go to this page and download the library: Download goodid/goodid-php-sdk 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/ */
goodid / goodid-php-sdk example snippets
// GoodID Login Initiation Endpoint (e.g. goodid-endpoint.php)
// Load the SDK and other dependencies
elpers\Key\RSAPrivateKey;
use GoodID\Helpers\OpenIDRequestSource\OpenIDRequestObject;
use GoodID\Helpers\Request\IncomingRequest;
use GoodID\ServiceLocator;
// -- Basic configuration --
$clientId = 'YOUR-CLIENT-ID';
$clientSecret = 'YOUR-CLIENT-SECRET';
$redirectUri = 'YOUR-REDIRECT-URI';
$scopes = array('YOUR-SCOPES'); // It can be an empty array
$claims = 'YOUR-CLAIMS-JSON-STRING';
$sigPrivKeyPEM = "YOUR-SIG-PRIV-KEY-PEM-STRING";
$sigPrivKeyKeyId = 'KEY-ID-OF-YOUR-SIG-PUB-KEY-ON-JWKS-URI';
$encPrivKeyPEM = "YOUR-ENC-PRIV-KEY-PEM-STRING";
$encPrivKeyKeyId = 'KEY-ID-OF-YOUR-ENC-PUB-KEY-ON-JWKS-URI';
// -- End of Basic configuration --
// -- Set session data handler OPTION 1 --
// You can use our default session data handler.
// In this case you need to start the session first.
session_start();
$serviceLocator = new ServiceLocator();
// -- Set session data handler OPTION 2 --
// Or you can add your own session data handler
// by defining a class which implements \GoodID\Helpers\SessionDataHandlerInterface
// Add that to the $serviceLocator.
$serviceLocator = new ServiceLocator();
$serviceLocator->setSessionDataHandler(new CustomSessionDataHandler());
$encKey = new RSAPrivateKey($encPrivKeyPEM, array('use' => 'enc', 'kid' => $encPrivKeyKeyId));
$sigKey = new RSAPrivateKey($sigPrivKeyPEM, array('use' => 'sig', 'kid' => $sigPrivKeyKeyId));
$goodidEndpoint = GoodIDEndpointFactory::createInitiateLoginEndpoint(
$serviceLocator,
new GoodIDPartnerConfig($clientId, $clientSecret, $sigKey, $encKey),
new OpenIDRequestObject($claims, $scopes),
$redirectUri,
new IncomingRequest()
);
$goodidEndpoint->run();
// Redirect URI / landing page
IDEndpointFactory;
use GoodID\Helpers\GoodIDPartnerConfig;
use GoodID\Helpers\Key\RSAPrivateKey;
use GoodID\ServiceLocator;
// -- Basic configuration --
$clientId = 'YOUR-CLIENT-ID';
$clientSecret = 'YOUR-CLIENT-SECRET';
$securityLevel = 'YOUR-SECURITY-LEVEL'; // 'NORMAL' or 'HIGH'
$sigPrivKeyPEM = "YOUR-SIG-PRIV-KEY-PEM-STRING";
$sigPrivKeyKeyId = 'KEY-ID-OF-YOUR-SIG-PUB-KEY-ON-JWKS-URI';
$encPrivKeyPEM = "YOUR-ENC-PRIV-KEY-PEM-STRING";
$encPrivKeyKeyId = 'KEY-ID-OF-YOUR-ENC-PUB-KEY-ON-JWKS-URI';
// -- End of Basic configuration --
// -- Set session data handler OPTION 1 --
// You can use our default session data handler.
// In this case you need to start the session first.
session_start();
$serviceLocator = new ServiceLocator();
// -- Set session data handler OPTION 2 --
// Or you can add your own session data handler
// by defining a class which implements \GoodID\Helpers\SessionDataHandlerInterface
// Add that to the $serviceLocator.
$serviceLocator = new ServiceLocator();
$serviceLocator->setSessionDataHandler(new CustomSessionDataHandler());
$encKey = new RSAPrivateKey($encPrivKeyPEM, array('use' => 'enc', 'kid' => $encPrivKeyKeyId));
$sigKey = new RSAPrivateKey($sigPrivKeyPEM, array('use' => 'sig', 'kid' => $sigPrivKeyKeyId));
try {
$gidResponse = GoodIDEndpointFactory::getResponse(
$serviceLocator,
new GoodIDPartnerConfig($clientId, $clientSecret, $sigKey, $encKey, $securityLevel)
);
if ($gidResponse->isSuccessful()) {
// Subject identifier
$subjectIdentifier = $gidResponse->getSub();
if ($securityLevel === 'HIGH') {
$userId = $gidResponse->getUserId();
$deviceId = $gidResponse->getDeviceId();
}
// The data provided by the user
$claims = $gidResponse->getClaims()->toArray();
// Now begins the substantial part of the job:
// You can do your custom validation of claims.
// You can log in (or register) the user:
// Read/write your DB, regenerate session id, etc.
// Good luck :-)
} else {
$error = $gidResponse->getError();
$errorDescription = $gidResponse->getErrorDescription();
// The login has failed with an OpenID Authentication Error Response
// For example the user pressed cancel in the app
}
} catch(\Exception $e) {
// The login has failed with an exception
// The identity of the user cannot be verified
}
use GoodID\Helpers\Key\JwkSetGenerator;
use GoodID\Helpers\Key\RSAPublicKey;
$sigPrivKeyPEM = "YOUR-SIG-PRIV-KEY-PEM-STRING";
$sigPrivKeyId = 'KEY-ID-OF-YOUR-SIG-PUB-KEY-ON-JWKS-URI';
$encPrivKeyPEM = "YOUR-ENC-PRIV-KEY-PEM-STRING";
$encPrivKeyId = 'KEY-ID-OF-YOUR-ENC-PUB-KEY-ON-JWKS-URI';
$encKey = new RSAPrivateKey($encPrivKeyPEM, array('use' => 'enc', 'kid' => $encPrivKeyId));
$sigKey = new RSAPrivateKey($sigPrivKeyPEM, array('use' => 'sig', 'kid' => $sigPrivKeyId));
$jwkSetGenerator = new JwkSetGenerator();
$jwkSetGenerator->addKey($sigKey);
$jwkSetGenerator->addKey($encKey);
$jwkSetGenerator->run();
json
{
"oodid/goodid-php-sdk": "~5.0"
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.