2017-10-05 144 views
0

我的問題已經回答了約90%,在以下問題:
How to get the refresh token with Google OAuth2 Javascript library?如何在純客戶端應用程序中從Google OAuth 2.0 API刷新access_token?

我有一個客戶端JS的Web應用程序。在這個應用程序中,我想使用Google API。爲此,我需要每小時刷新一次access_token,但沒有會一次又一次向用戶顯示Google登錄屏幕。目前沒有服務器端代碼,我想避免服務器端代碼,因此我的應用程序更具可移植性(例如Electron)。

這意味着我有的唯一可能性就是上面鏈接問題中答案的選項二。它說:

讓你的客戶只需要訪問令牌,因爲它需要它們。設置immediate=true,以便與用戶沒有可見的交互。

我通過兩個單證看:Google API Client LibraryGoogle Identity Platform(這是多數民衆贊成在後臺被使用的客戶端庫直接的OAuth 2.0終點)。

我找不到一個叫做immediate的選項。但是這個問題告訴我應該可以在純粹的客戶端Web應用程序中刷新access_token,但不使用refresh_token。但是如何?

此外,我完全希望避免使用客戶端庫,因爲它很難與基於webpack的項目集成在一起......所以我主要關注HTTP請求再次訪問OAuth端點應該是什麼樣子。

編輯:固定鏈接錯誤

回答

0

您鏈接到答案指的是客戶端庫的早期版本。目前的版本記錄在https://developers.google.com/identity/protocols/OAuth2UserAgent和我相信(NB未測試)相當於immediate=trueprompt=none

+0

這似乎是可能的,這就是我正在尋找。 ''.grantOfflineAccess()'方法還有什麼特別的地方。現在我需要找出有什麼不同,一旦我確切知道我需要哪一個,從HTTP的角度來看,我可以自己實現它。非常感謝。 –

+0

grantOfflineAccess旨在與服務器認證流程結合使用。如果你正在尋找一個純粹的JS /瀏覽器解決方案,grantOfflineAccess是不是。我在https://github.com/google/google-api-javascript-client/issues/232上看到了一則評論,「然而,由於GSI v2會照顧緩存和令人耳目一新的令牌」,所以它可能是圖書館所做的爲你工作。 – pinoyyid

+0

我現在自己打開了一個問題:https://github.com/google/google-api-javascript-client/issues/343在那裏,我基本上被告知同樣的事情。它只是:令牌的自動刷新似乎不起作用。問題中列出了更多細節。 –

相關問題