実際、テスト ユーザーの google claim_id が変更されたインスタンスに遭遇しました。アプリへの OpenID の実装が終わりに近づいていましたが、明らかに理由もなく、応答データの claim_id が変更されました。
過去数週間、このアカウントでテストしてきましたが、予想どおり、claimed_id はずっと同じでした。すると、ワム、変わった!応答データを何度も確認して確認しましたが、データを取得するための基になるコードは変更されていませんでした。
現時点ではこれを処理する方法がわかりませんが、ループに陥ると思います。最初の認証の後、ユーザーは (ご想像のとおり) サイトに登録し、スクリーン ネームを設定します。claim_id が変更された場合、同じユーザーであることを確認するにはどうすればよいですか? ベスト プラクティスに従って、メール アドレスを使用することはできません。
編集
今、私は私の顔にパイを持っています!私は細部を 1 つ見逃していましたが、それが主要な詳細であることが判明しました。開発環境を変更し、別の v-host でホストしていました。これによりレルムが効果的に変更され、ドキュメントに従って claim_id 応答が変更されます。
コードでレルムが自動的に設定されているサブドメインに OID を実装しようとしていたので、これは私にとって良い教訓でした。ID を壊さずに他のすべてのサブドメインで同じユーザー データベースを使用することはできなかったため、今後の頭痛の種から解放されました。
レルムの更新
より詳しい情報
サブドメインの 1 つに対して OpenID ソリューションを開発している場合でも、最上位ドメインにレルムを指定するのが賢明な場合があります。
例: openid.realm = http://*.yourdomain.com
これにより、サインイン ページをすべてのサブドメインに拡張し、サブドメイン全体でユーザー ID を保持できます。
(オプション) 認証されたレルム。エンド ユーザーが信頼するよう求められているドメインを識別します。(例: "http://*.myexamplesite.com") この値は、openid.return_to で定義されたドメインと一致している必要があります。このパラメータが定義されていない場合、Google は openid.return_to で参照されている URL を使用します。