1

我的應用程序使用Google OAuth2以及Spring安全性。示例實現是hereGoogle App Engine - 多用戶會話

問題是>>我有多個用戶在我的Chrome瀏覽器中籤名。用戶可以是普通的Google用戶或Google Apps域用戶。我沒有得到爲什麼我的應用程序重定向到 https://appengine.google.com/_ah/loginform?state=####

The first user selection page 當我從提供的選項中選擇一個用戶後,UserService接口將獲得所選用戶的憑證。但在此之後,我會收到有關帳戶選擇器頁面的提示。

enter image description here

在我的應用程序已經使用createLoginURL(UserService的)重定向用戶到登錄頁面。另外,如果我從帳戶選擇器頁面中選擇了其他用戶,則第二個用戶服務器仍會保留從第一頁中選擇的用戶的憑據。

我卡在這裏的問題是如何根據用戶選擇更新我的UserService。另外,如果用戶從Google的頁面切換到第二個帳戶(搜索,驅動器,郵件等),我如何使用更改後的用戶憑據重新實例化UserService。有沒有什麼辦法可以使用請求頭或任何其他值的'authUser'或'session_state'來觸發應用程序中由於用戶更改而引發的事件。我知道,Google App Engine上的會話使用數據存儲實體「_ah_SESSION」進行維護,我也有一個cron來移除過期的會話。如果瀏覽器只有一個用戶登錄Google,一切正常。

總之,如何使用UserService界面維護多個用戶登錄詳細信息?

+0

這個問題不是非常可讀,可以通過屏幕截圖得到改進,並且需要更多解釋您用於創建登錄情況的任何代碼/配置文件。 – Nick

+0

我已根據您的建議@Nick更新 – akgaur

回答

0

如果您已經注意到哪個用戶登錄到您的應用程序與哪個用戶已登錄並在另一個選項卡中處於活動狀態(例如gmail或驅動器等Google服務)無關,如您所解釋的,由於會話cookie存儲在你的應用程序中,以及它們沒有從Gmail,驅動器等標籤上的任何「信號」更新。如果您想使用用戶服務管理App Engine上的多個登錄,您應該明星並捅this public issue tracker feature request