1

私は、識別子の選択をサポートするOpenIDサーバーをPHPに実装しようとしています(これは、実際には識別子の選択のより具体的なケースである、この有向IDと呼ばれることもあります)。つまり、ユーザーはOpenID識別子として汎用URIを入力し、ログインして、OpenIDコンシューマーに返す識別子を選択できます。

たとえば、ユーザーが識別子としてmysite.comを入力した場合、ログイン後、2つの識別子のいずれかをOpenIDコンシューマー(おそらくmysite.com/myusernameまたはmysite.com/anon-ad83f38c98b98)に返すように求められます。

このシステムの利点は、多くのサイトで単一の識別子を使用するか、個々のサイトに一意の識別子を使用するかを選択できることです。

とにかく—PHPでOpenID仕様のこの部分を実装する方法についての良いチュートリアルを見つけることができませんでした。実際、ほとんどの検索で、フォーラムやスタックオーバーフローでさえ未回答の質問が見つかりました。識別子の選択または指示されたIDを処理できるPHPライブラリを知っている人はいますか?もしそうなら、それを設定する方法を説明するチュートリアルはありますか?私はそれについて言及していないいくつかのライブラリで遊んでいますが、まだそれを機能させることができていません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

ドキュメントは役に立たない。Janrain ライブラリをご覧になりましたか? それらには、私が正常に実装したコンシューマーと、実装可能であると思われるサーバー コードがあります。Yadis\XRIRes および Yadis\XRI ファイルを見てください。コードをリバース エンジニアリングする必要があるかもしれません。これは、消費者を把握するために私がしなければならなかったことです。現在、サーバーの実装を検討していますが、まだ価値のあるものを見つけることができません。

http://openidenabled.com/files/php-openid/docs/2.1.3/OpenID/Auth_Yadis_Yadis.html

于 2010-01-19T15:29:34.893 に答える
0

php-openid v2 は確かに有能です。実際、識別子の選択を追加しても、ライブラリとの対話方法はほとんど変わりません。を取得したらAuth_OpenID_ChecKIDRequest、そのメソッドをチェックしてidSelect、識別子の選択のケースであるかどうかを確認できます。次に、選択した ID を に渡しAuth_OpenID_ChecKIDRequest.answer()ます。

唯一の他のビットは、仕様が「OP Identifier Element」と呼んでいるものをmysite.com/で宣伝することを確認することです。ユーザー ID の XRDS ページを既に提供している場合、これは同じように機能しますが、タイプ URL が異なります。そうでない場合 (要素を使用した HTML ベースのディスカバリーを使用してlinkいる場合)、例として myopenid の HTTP ヘッダーを参照することをお勧めします。

于 2010-01-22T08:28:34.303 に答える