2009-08-27 8 views
7

Ich schreibe eine vertrauende Party und verwende den Google-Provider. Yadis führt mich zu https://www.google.com/accounts/o8/ud, schaffe ich eine Assoziation, und leiten den Browser des Benutzers zu dieser URL (HTTP 307), und in den folgenden Abfrageparameter füllen:Google OpenID: Die von Ihnen angeforderte Seite ist ungültig

  • openid.ns: http://specs.openid.net/auth/2.0
  • openid.mode: checkid_setup
  • openid.assoc_handle: value_received_from_association,
  • openid.return_to: http://my_host:and_port/?returned=1

AFAICT habe ich ausgefüllt alles, was ich bin s bereit zu stellen, aber der Browser meines Benutzers erhält eine Seite von Google, die sagt, dass "die Seite, die Sie angefordert haben, ungültig ist". Inwiefern?

Antwort

4

Der Fehler wurde buchstäblich ohne die openid.claimed_id und openid.identity Parameter ausgelöst, die zu "http://specs.openid.net/auth/2.0/identifier_select" eingestellt werden müssen. Bei diesen Einstellungen erhalte ich einen weiteren Fehler, der behoben werden kann, indem auch openid.realm mit dem gleichen Wert wie openid.return_to ausgefüllt wird.

Obwohl ich auch die RP-Erkennung implementiert habe, scheint Google sie nicht zu verwenden.

+0

Oh ya, ich weiß nicht, wie ich das vermisst habe. :) Eigentlich erlaubt die OpenID-Spezifikation das Fehlen von 'openid.claimed_id' und' openid.identity', aber Google und die meisten OPs unterstützen dieses Verhalten nicht. –

1

Haben Sie die RP-Erkennung für Ihre Site bereits eingerichtet? Das ist etwas anderes, was Sie tun müssen, und Google könnte es jetzt durchsetzen.

http://blog.nerdbank.net/2008/06/why-yahoo-says-your-openid-site.html

+0

Wie könnte das möglicherweise funktionieren? Die einzige URL, die ich Google gebe, ist die URL von return_to, und ich weiß, dass Google nicht versucht, darauf zuzugreifen. –