Frage

ich mit Open ID arbeite, nur spielen um eine Klasse machen zu interagieren / Auth öffnen IDs auf meiner Website (in PHP). Ich weiß, es gibt ein paar andere Bibliotheken (wie RPX), aber ich möchte meine eigenen verwenden (seine gute Hilfe zu halten besser, das Protokoll zu verstehen und ob sein Recht für mich).

Die Frage, die ich bezieht sich auf die Open ID Entdeckung Folge haben. Im Grunde habe ich den Punkt erreicht, wo ich mit dem XRDS doc suche die lokale Identität (openid.identity) von der beanspruchten Identität (openid.claimed_id) zu erhalten.

Meine Frage ist, muss ich eine cURL Anfrage machen den XRDS Ort (X-XRDS-Position) und dann machen andere cURL Anfrage zu bekommen die tatsächliche XRDS doc zu bekommen ??

Es scheint, wie mit einem stummen Wunsch nur ich eine cURL Anfrage machen und den Open-ID-Server erhalten, muß aber zwei mache die XRDS Smart-Methode zu verwenden. Nur scheint nicht richtig, kann jemand mir ein paar Informationen geben.

War es hilfreich?

Lösung

Um vollständig zu sein, ja, Ihr RP muss HTTP GET auf der URL der Benutzer gibt Ihnen und dann für einen XRDS Dokumentverweis suchen und wenn Sie findet eine andere HTTP-GET von dort. Beachten Sie, dass die XRDS auf einem anderen Server gehostet werden können, also nicht-Code nicht auf alles, was die Verbindung erfordern würde das gleiche zwischen den beiden Anfragen sein, da es nicht die gleiche Verbindung sein könnte.

Wenn in Ihrer ursprünglichen HTTP-GET-Anfrage Sie umfassen die HTTP-Header:

Accept: application/xrds+xml

Dann kann die Seite reagiert sofort mit dem XRDS Dokument eher als ein HTML-Dokument, das Sie für einen XRDS Link zu analysieren hat. Sie werden in der Lage sein zu erkennen, dass dies durch die Überprüfung der HTTP-Response-Header für die Anwendung / XRDS + xml in seinen Content-Type-Header aufgetreten ist. Dies ist eine Optimierung, so dass RPs der Regel nicht, dass die zweiten HTTP-GET-Anruf tätigen müssen - aber Sie können nicht darauf verlassen, es geschieht.

Andere Tipps

Der beste Rat, den ich Ihnen geben kann, ist zu abstrakt HTTP, um zu versuchen, ein wenig anfordert, und dann nur den gesamten Prozess zweimal zu tun, eine HTTP-Anforderung gehen.

Sie können Ihre curl Instanzen um halten, wenn Sie die Dinge mit persistenten Verbindungen beschleunigen wollen, aber das kann oder nicht sein wollen, Sie wollen.

Ich hoffe, das hilft und viel Glück .. OpenID ist eine der sperrigen und gewundenen Webstandards ich da WebDAV stoßen habe =)

Evert

Ich weiß, ich bin zu spät, um das Spiel hier, aber ich denke, Sie sollten auch überprüfen

scroll top