2012-09-23 42 views
1

我得到以下是什麼原因導致間歇性授權無效

{ 
    "error" : "invalid_grant" 
} 
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:103) 
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303) 
    at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:130) 

這只是發生在我的生產AppEngine實例處理,(即未開發服務器上),並且只發生於那些我使用的電子郵件地址用於開發和生產測試。

我的工作假設是,這與用戶在開發服務器上被授予刷新令牌有關,這種令牌在某種程度上干擾了prod服務器上存儲的刷新令牌。

任何人都可以證實這個解釋,並有一個關於如何處理這個異常的最佳做法嗎?

回答

6

目前只有最後25個由Google工作的刷新令牌。 我們基本上保留了生成的刷新標記的大小爲25的隊列。

這意味着在您的測試帳戶中,如果您碰巧產生了超過25個刷新標記,則較舊的標記將開始被吊銷。

也許這就是發生在這裏的事情,所以我想指出這一點,可能是因爲您的測試帳戶在您的開發服務器上生成了超過25個刷新標記,並且標記已被刪除(因爲那裏是25個較新的)。

這是沒有記錄有關我們的身份驗證服務器的東西,因此請注意,它可以隨時更改。

一般情況下,如果發生此異常,您需要讓用戶通過新的OAuth 2.0流程才能獲得新的刷新令牌。

+0

嗨Nivco,這幾乎可以肯定發生了什麼事情。很感謝 – pinoyyid

+0

@Nivco:您可以確認每個Google Analytics帳戶或每個Google帳戶的限額是多少? https://developers.google.com/analytics/default.asp?hl=zh_CN https://developers.google.com/analytics/default.aspx?hl=zh_CN上的問題排查指南顯示,該帳戶顯然位於每個Google Analytics帳戶中,但我擁有使用相同Google授權許多不同Google Analytics帳戶的客戶帳戶,並且當嘗試使用某些刷新令牌獲取新的訪問令牌時,即使客戶僅爲每個Google Analytics帳戶生成一個刷新令牌,我現在也會得到invalid_grant失敗。 –

+0

25個刷新令牌限制是每個Google帳戶和每個應用(基本上,一個應用只能爲給定用戶提供25個工作刷新令牌) – Nivco

相關問題