Ho giocato con la libreria PHP di JanRain OpenID, principalmente seguendo lo a tutorial I found on ZendZone.Come distinguere/identificare gli utenti con OpenID senza richiedere campi SReg?
Come si fa a distinguere tra gli utenti, in particolare gli utenti di Google, che finiscono per utilizzare lo stesso URL OpenID, https://www.google.com/accounts/o8/id?
Fondamentalmente, sono al punto in cui posso rilevare che hanno un account OpenID ... che sono stati autenticati con successo ... ma la mia app ancora non sa chi sono; solo che sono autenticati.
Per distinguere gli utenti, il tutorial utilizza una "Richiesta di registrazione semplice" per richiedere l'e-mail dell'utente del provider OpenID e quindi utilizzare l'indirizzo di posta elettronica per verificare se si tratta di un utente che ritorna.
Non funzionava per me e apparently won't work with some providers quindi ero eccitato quando mi sono imbattuto in una funzione getDisplayIdentifier
.
require_once "Auth/OpenID/Consumer.php";
require_once "Auth/OpenID/FileStore.php";
// create file storage area for OpenID data
$store = new Auth_OpenID_FileStore('/wtv');
$consumer = new Auth_OpenID_Consumer($store);
$oid_response = $consumer->complete("http://example.com/oir_return");
if ($oid_response->status == Auth_OpenID_SUCCESS) {
$hopefullyUniqueUserID = $oid_response->getDisplayIdentifier(); // I assumed this would be a relatively permanent way to identify the user...
// I was wrong.
}
Purtroppo, dopo un paio d'ore, il valore restituito da getDisplayIdentifier
cambiamenti.
Si prega di leggere attentamente le specifiche. 'https: // www.google.com/accounts/o8/id' è l'identificatore fornito dall'utente, l'utente non afferma necessariamente di possederlo, il suo scopo potrebbe essere solo guidare l'utente a selezionare un identificatore, come lo è il caso con Google. – Artefacto