私は JanRain ライブラリを使用しており、サーバーの例と非常によく似たコードを実装しています (基本的に、独自の openid プロバイダーを作成しています)。動作していますが、指定された ID とは異なる ID をコンシューマーに返そうとすると、次のエラーが発生します。
リクエストはhttp://example.com/に対するもので、ID http://example.com/openid/33では返信できません
この場合、一意の ID/URL はhttp://example.com/openid/33
であり、消費者に指定されたものは ですhttp://example.com
。
私はこのようなものを使用しています:
$request = $server->decodeRequest();
$request->answer( true, null, $id_url, $request->identity );
$request->identity
とを切り替えてみました$id_url
。上記の状態でのみエラーが発生し、他の状態は機能しますが、消費者に正しいものを返していないようです。ここにある OP Simple Registration テストを使用しています: http://test-id.org/OP/Sreg.aspx、それらを切り替えると動作しますが$id_url
、ログのどこにも見つかりません。
私の推測では、エンドユーザーが指定した ID とは異なる ID について、プロセスの早い段階で消費者に伝える必要があると思いますが、これまでのところ、正しいことを試していません。これが yahoo の OpenID のしくみなので、これが可能であることはわかっています。
アイデアや提案は大歓迎です。ありがとう!