0
撥打電話後:GoogleAuthorizationCodeFlow
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets, SCOPES).setDataStoreFactory(
dataStoreFactory).build();
Credential cred = flow.loadCredential(userIdFromMyApplication);
,並找到我們的userIdFromMyApplication
還沒有給我們使用他們的谷歌帳戶的權限(即cred
爲null)我做了以下內容:
if (cred == null) {
String url = flow.newAuthorizationUrl().setState("/linkaccount")
.setRedirectUri("http://myapp.com/oauth2.php").build();
//redirect them to the url
}
我的問題是,一旦他們已經授予我的應用程序訪問權限和我的應用程序的oauth2重定向網址,我在我的API訪問令牌設置下被Google調用訪問code
參數集,然後如何關聯此code
機智h userIdFromMyApplication
?在構建redirectUrl時,我需要在setState
的調用中設置userIdFromMyApplication
嗎?這是一個可行的慣例嗎?還是有更聰明的方法來確定訪問令牌屬於哪個用戶?
好的,我將在不同的容器(即一箇中央Oauth2回調處理程序)下運行回調,但是我會放棄,如果約定通常使其在與請求相同的會話中運行。謝謝@pinoyyid – ThaDon
您可能可以使用state參數來傳遞混淆的用戶標識。只要確保你已經考慮過任何安全隱患。 – pinoyyid
現在我想到了更多,我將不得不添加一些東西到狀態參數爲了從會話中檢索uid嗎?我的場景是'[在瀏覽器中的JavaScript] == POST ==> [我的服務器] == GoogleAuthorizationCodeFlow ==> [谷歌的服務器] ==用代碼回調==> [我的服務器]'這一切都不會發生在同樣的httpsession會嗎? – ThaDon