私のアプリケーションは、Spring セキュリティと一緒に Google OAuth2 を使用しています。サンプル実装はこちらです。
問題は >>複数のユーザーが Chrome ブラウザにサインインしています。ユーザーは、通常の Google ユーザーでも Google Apps ドメイン ユーザーでもかまいません。アプリケーションがhttps://appengine.google.com/_ah/loginform?state=####にリダイレクトされる理由がわかりません 。
提供されたオプションからユーザーを選択すると、UserService インターフェイスは選択したユーザーの資格情報を取得します。しかし、この後もアカウント選択ページが表示されます。
私のアプリケーションでは、UserService の createLoginURL() を使用して、ユーザーをログイン ページにリダイレクトしました。また、アカウント選択ページから別のユーザーを選択すると、2 番目にプロンプトが表示され、UserService は最初のページから選択されたユーザーの資格情報を保持します。
ここで立ち往生している問題は、選択したユーザーに応じて UserService を更新する方法です。また、ユーザーが Google のページ (検索、ドライブ、メールなど) から 2 番目のアカウントに切り替えた場合、変更されたユーザーの資格情報で UserService を再インスタンス化するにはどうすればよいですか。リクエストヘッダーの「authUser」または「session_state」またはその他の値を使用して、ユーザーの変更によりアプリケーションでイベントをトリガーする方法はありますか? 私は、Google App Engine のセッションがデータストア エンティティ '_ah_SESSION' を使用して維持されていることを認識しており、有効期限が切れたものを削除するための cron も用意しています。ブラウザで Google にログインしているユーザーが 1 人だけの場合、すべてが正常に機能します。
つまり、UserService インターフェイスを使用して複数のユーザーのサインインの詳細を維持する方法は?