5
我試圖放大'expires_in'(來自憑證對象,現在是3600秒)的值,因爲我想允許用戶長時間使用我的應用程序。我正在使用刷新令牌,但只有在用戶經常使用應用程序時才刷新。Google OAuth2 - 如何更改expires_in或token_expiry值?
如果您知道如何更改token_expiry日期 - 我也對該解決方案感興趣。
感謝您的任何提示。
我試圖放大'expires_in'(來自憑證對象,現在是3600秒)的值,因爲我想允許用戶長時間使用我的應用程序。我正在使用刷新令牌,但只有在用戶經常使用應用程序時才刷新。Google OAuth2 - 如何更改expires_in或token_expiry值?
如果您知道如何更改token_expiry日期 - 我也對該解決方案感興趣。
感謝您的任何提示。
出於安全原因,過期時間很短,不能更改。但是,您可以擴展用戶的授權,而無需使用refresh_token與用戶交互。基本上,作爲授權碼交換的響應,服務器提供refresh_token看起來像這樣:
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
當令牌過期時,所有你所要做的就是用refresh_token重新授權,而無需用戶交互。就像這樣:
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
client_id=21302922996.apps.googleusercontent.com&
client_secret=XTHhXh1SlUNgvyWGwDk1EjXB&
refresh_token=1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74
grant_type=refresh_token
爲了使事情變得更簡單,當你使用Python,你甚至不必關心refresh_token如果您正在使用Credentials class從谷歌的API的Python客戶端。只需使用Credentials.authorize(),它將根據您的狀態自動授權或刷新令牌。
謝謝!這很有幫助,這也是Google提供刷新請求的地方:https://developers.google.com/identity/protocols/OAuth2WebServer#offline – JJC