要對付的accessToken到期,你需要從谷歌獲得refreshToken。通過這個refreshToken,您可以通過簡單的HTTP POST向Google的API獲取新的accessToken。 Here是Google的相關文檔。要獲得refreshToken,您需要請求離線訪問,並且可能還需要強制批准提示,詳見此SO post。
forceApprovalPrompt: {google: true},
requestOfflineToken: {google: true},
我建議使用流星的HTTP package實現上述所有。所有的工具都在那裏。你可能已經想通了:
var result = HTTP.post(
"https://www.googleapis.com/oauth2/v3/token",
{
params: {
'client_id': config.clientId,
'client_secret': config.secret,
'refresh_token': user.services.google.refreshToken,
'grant_type': 'refresh_token'
}
});
//Do some error checking here
var newAccessToken = result.data.access_token;
- refresh_token - 從授權 交換代碼返回的刷新令牌。
- CLIENT_ID - 從 開發者控制檯獲得的客戶端ID。
- client_secret - 從 開發人員控制檯獲取的客戶端機密。
- grant_type - 按照OAuth 2.0 規範中的定義,此字段必須包含值refresh_token。
result.data將與以下
{ 「的access_token」 JSON對象: 「1/fFBGRNJru1FQd44AzqT3Zg」, 「expires_in」:3920, 「token_type」: 「承載」, }