====== Esempio di OIDC client scritto in PhP ====== A titolo di esempio proponiamo un esempio di client OIDC scritto in PhP. Il codice si avvale di una libreria che consente a un’applicazione di autenticare un utente tramite il flusso base di OpenID Connect. Libreria: OpenID-Connect-PHP [[https://github.com/jumbojett/OpenID-Connect-PHP]] * client_id e client_secret sono forniti da UNIPR\\ * RedirectURL va comunicato dallo sviluppatore a UNIPR Nel caso di questo esempio il redirect URL può essere la pagina stessa alla quale il client viene rediretto dal nostro OP dopo l'autenticazione. setResponseTypes(['id_token']); $oidc->setAllowImplicitFlow(true); $oidc->setRedirectURL($RedirectURL); $oidc->addScope(["openid","email","profile","spid"]); $oidc->addAuthParam(['response_mode' => 'form_post']); $auth = $oidc->authenticate(); $claims = $oidc->getVerifiedClaims(); if($auth && is_object($claims) && !empty(get_object_vars($claims))){ echo "Utente autenticato"; printObjectAsTable($claims); echo "

Parametro state inviato da request e ricevuto da response: " . $_REQUEST["state"]."

"; echo "
"; echo "

Parametro id_token non decodificato contenente i claims della tabella: ". $_REQUEST["id_token"]."

"; } else { echo "Utente non autenticato"; } function printObjectAsTable($obj) { echo "

"; echo ""; foreach ($obj as $key => $value) { echo ""; } echo "
KeyValue
" . htmlspecialchars($key) . "" . htmlspecialchars($value) . "

"; } ?>
Output della pagina a titolo di esempio:\\ {{:guide_pubbliche:howto:identity:esempio_output_oidc_client.png?nolink&600 |}}