2012-03-20 245 views
3

我有一個應用程序,是谷歌日曆擡頭顯示。該應用程序是100%的客戶端JavaScript,我想保持這種方式,但谷歌的OAuth令牌失效讓我不允許用戶離開應用程序打開,它繼續調查谷歌API。谷歌OAuth令牌到期

我正在尋找有關如何刷新令牌或請求新令牌的任何信息,同時對用戶完全透明。在3600秒之後,應用程序必須重新訪問用戶的Google帳戶,完全重定向會在應用程序中強制中斷。

我已經嘗試了一些其他方法,首先我嘗試使用服務器端身份驗證,它與localStorage工作得很好,但是當我在獲取請求令牌後嘗試POST訪問令牌時失敗,我試過了iframe和page既不發佈工作:(。

如果任何人有關於如何權威性和保持與谷歌authed用戶的任何想法,請分享:)

+1

研究使用刷新令牌。它們持久且可用於獲取新的訪問令牌。它們可能不支持客戶端Web應用程序,但本頁面還包含更多有關刷新令牌的信息:https://developers.google.com/accounts/docs/OAuth2 – abraham 2012-03-20 21:29:43

回答

0

不幸的是我找到了這樣做的唯一方式是使用一個Web服務器作爲有沒有其他方法來保證您的client_secret安全。如果這是一個選項,你,我有過成功實現以下谷歌文檔中描述的方法:

https://developers.google.com/accounts/docs/OAuth2WebServer

基本上我最初要求在客戶端的離線訪問,然後成功,交易產生的授權碼使用我的網絡服務器刷新令牌。刷新令牌也可以存儲在超長超時的cookie中。每當訪問令牌到期時,我都使用刷新令牌請求另一個訪問令牌。