Ich spielte mit der JanRain OpenID PHP Library, meistens zusammen mit a tutorial I found on ZendZone.Wie kann man Benutzer mit OpenID unterscheiden/identifizieren, ohne SReg-Felder anzufordern?
Wie unterscheidet man Benutzer - insbesondere Google-Nutzer, die alle die gleiche OpenID-URL verwenden, https://www.google.com/accounts/o8/id?
Grundsätzlich bin ich an dem Punkt, wo ich erkennen kann, dass sie ein OpenID-Konto haben ... das sie erfolgreich authentifiziert haben ... aber meine App weiß immer noch nicht wer sie sind; nur dass sie authentifiziert haben.
Um die Benutzer zu unterscheiden, verwendet das Lernprogramm eine "Einfache Registrierungsanforderung", um die E-Mail des Benutzers des OpenID-Anbieters anzufordern - und dann die E-Mail-Adresse zu verwenden, um festzustellen, ob es sich um einen wiederkehrenden Benutzer handelt.
Es war nicht für mich arbeiten, und apparently won't work with some providers so war ich aufgeregt, als ich auf eine Funktion stolperte 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.
}
Leider nach ein paar Stunden der Wert von getDisplayIdentifier
Änderungen zurückgegeben.
Bitte lesen Sie die Spezifikation sorgfältig. "https: // www.google.com/accounts/o8/id" ist die vom Nutzer angegebene ID, der Benutzer muss nicht unbedingt angeben, dass er Eigentümer der ID ist, sein Zweck kann den Nutzer lediglich dazu veranlassen, eine ID auszuwählen, wie dies auch der Fall ist Fall mit Google. – Artefacto