2010-12-31 5 views
0

Ich versuche OpenId für meine Website zu implementieren und verwende Janrains Bibliothek mit PHP. Ich möchte prüfen, ob der bereitgestellte openId-Benutzer bereits in der Datenbank gespeichert ist. Ich möchte nur normalisierte uri's vergleichen, um Situation zu vermeiden, wenn Benutzer manchmal nicht "http: // ..." usw. eintippt. Jetzt habe ich Probleme, spezifische Funktionen herauszufinden, die Uri für mich direkt nach dem Benutzer normalisieren können gibt openId ein, sobald es auf meinen Server trifft, bevor etwas an den openId-Provider gesendet wird. BTW, wie Sie sich langsam vorstellen können Ich bin es leid, mit dem Versuch, all das funktioniert, aber immer noch bereit, es zu versuchen, damit jede Hilfe sehr geschätzt würde.Wie normalisierte URL mit Janrain Openid-Bibliothek erhalten?

Antwort

0

(Angenommen, Sie meinen die "OpenID Enabled" PHP5-Bibliothek von Janrain, v 2.2.2 oder so). In OpenID.php ist Auth_OpenID::normalizeUrl($url) definiert, jedoch ist es als @access private markiert. Wenn Sie eine Autorisierungstransaktion initiieren, erhalten Sie eine normalisierte URL als Ergebnis des Prozesses, aber das ist nicht das, wonach Sie suchen. Sie können den privaten Zugriff ignorieren, die Bibliothek hacken, um sie öffentlich zu machen, und dann Ihren Patch beibehalten, wenn Sie Versionen upgraden (wenn diese jemals veröffentlicht werden). Alternativ können Sie sich auch ansehen, was sie gerade tun, und es in eine eigene Funktion kopieren, um Bibliothekshacks und die damit verbundenen Probleme bei der Versionskontrolle zu vermeiden.

0

Wenn Sie so etwas wie:

$url = str_replace(array("http://", "https://", "www."), "", $url); 

dass Sie die gleiche URL jedes Mal bekommen sollte helfen.

+0

Während dies wird wahrscheinlich eine konsistente URL geben, ist es nicht streng eine "normalisierte" URL im Sinne von OpenID. Ihr Vorschlag könnte jedoch für den angegebenen Zweck, eine ID mit einem Kontoeintrag zu verknüpfen, gut genug sein. – RobertB

Verwandte Themen