0

我正面臨一個理解oauth2流程的問題。 用戶(由user_id標識)在瀏覽器中啓動GoogleAccounts連接。請求被傳遞給發送重定向字符串到客戶端(Javascript)的Servlet,後者又將用戶重定向到該Auth URL。 在用戶同意上,響應返回到回調URL(映射到servlet)。 我在這裏混淆了什麼時候調用回調servlet,我如何識別這個authCode屬於哪個用戶(user_id)? 我必須使用oAuth2的狀態參數嗎?Google OAuth2 Flow在服務器端Web應用程序中使用Java

請幫忙。

+0

這可能是我知道的最簡單的方法,就是使用Google plus api。 http://developers.google.com/+/web/api/rest/latest/people/get發送給我會得到一些關於當前認證用戶的信息。發送訪問令牌到令牌驗證端點也可以工作,但取決於您請求的範圍 – DaImTo

+0

@DalmTo我可能沒有正確地提出我的問題。更多詳細信息 在我的web應用程序中,由唯一身份標識ID,試圖在瀏覽器端連接他的(一個或多個)Google帳戶。服務器端(Java)啓動oauth流重定向用戶authurl。用戶同意後,在我的回撥servlet上,我想識別我的應用程序的哪個用戶(由唯一ID標識)已啓動連接此Google帳戶,以便我可以存儲此用戶的Google授權。 請幫助,我應該使用狀態paran – zee

+0

我認爲你可以嘗試狀態參數,因爲它將攜帶user_id作爲迴應。它的描述是這樣的:在收到響應時提供可能對您的應用程序有用的任何狀態。 Google授權服務器對此參數進行了四捨五入,以便您的應用程序收到它發送的相同值。可能的用途包括將用戶重定向到您站點中的正確資源以及跨站點請求僞造緩解。 https://developers.google.com/identity/protocols/OAuth2UserAgent – Abhishek

回答

0

正如評論所示,state帕拉姆是你的朋友。最簡單的方法是簡單地設置state=user_id。另一種方法是啓動服務器會話並將用戶標識存儲在會話對象中。後一種方法假設你有一個相對簡單的服務器,或者你的集羣支持共享會話。

相關問題