2

python-openid を使用して、python ベースのサイトを OpenID に正常に接続しています。Google とうまく連携し、Yahoo! とも連携します。しかし、Yahoo! 属性交換が機能していないようです。私はメールアドレスしか知りません。名、姓、および国は常に空白です。Yahoo! アカウント (その電子メール アドレスによる) には、名と姓が定義されています。

通常の OpenID パラメーターの中でこれらのパラメーターを使用します。

    'openid.ns.ax':'http://openid.net/srv/ax/1.0',
    'openid.ax.mode':'fetch_request',
    'openid.ax.required':'firstname,lastname,email,country',
    'openid.ax.type.firstname':'http://axschema.org/namePerson/first',
    'openid.ax.type.lastname':'http://axschema.org/namePerson/last',
    'openid.ax.type.email':'http://axschema.org/contact/email',
    'openid.ax.type.country':'http://axschema.org/contact/country/home',

私はこの答えを見つけましたが、PHPフレームワークとその「カウント」の使用に慣れていません。python-openid フレームワークにはそのようなものはありません。

4

1 に答える 1

2

おそらく、遅刻しないよりはましです。Net::OpenID::Consumer パッケージを使用して Perl でこれと同じことをテストしていたところ、同様の問題がありました。firstname と lastname は yahoo から入手できないことを最初に発見しました。代わりに、axschema タイプhttp://axschema.org/namePersonを指す別のタイプを定義する必要があり、メディア イメージをリクエストすることもできますが、名と姓は決して働かない。

yahoo の openid 属性交換に関するドキュメントはここにあります (これは恐ろしいことですが、同時に、型を定義し、それらを適切なスキーマ値にポイントする方法を知るのは開発者次第です): http://developer .yahoo.com/blogs/ydn/posts/2009/12/yahoo_openid_now_with_attribute_exchange/ .

これは、リクエストできる値が国、電子メール、名、姓、および言語である Google とは対照的に、こちらでより適切に文書化されています: http://code.google.com/apis/accounts/docs/OpenID.html

違いがあるため、リストされているプロバイダーごとに異なるリターン URL を提供するのが賢明かもしれません。まだテストしていないため、MyOpenID の属性はリストしていません。

于 2011-04-04T20:44:49.087 に答える