[英]Google Oauth not getting refresh token
我正在嘗試獲取刷新令牌。 我在谷歌文檔中讀到了它。 現在,我正在使用脫機的accessstype以及approval_prompt:“force”但是我沒有得到刷新令牌作為響應。 我得不到我做錯了什么。
我有以下HTML代碼:
<input type="submit" class="btn btn-info" value="Google" onclick="authorizeWithGoogle()" />
Javascript代碼:
var cid = 'XXXXX';
var apik = 'XXXXX';
var scopes = 'https://www.google.com/m8/feeds';
function authorizeWithGoogle() {
gapi.client.setApiKey(apik);
gapi.auth.authorize({ client_id: cid, scope: scopes, accesstype: "offline" ,approval_prompt: "force"}, handleAuthResult);
}
function handleAuthResult(authResult) {
delete authResult['g-oauth-window'];
if (authResult && !authResult.error) {
console.log(JSON.stringify(authResult));
}
}
你能幫我么。
您不希望請求刷新令牌,因為這會否定OAuth的安全性。 只應在服務器上請求/存儲刷新令牌。 在繼續之前,您可能需要退一步並檢查您對OAuth的理解。 試圖在不了解它的情況下實施OAuth是一個皮塔餅。
對於瀏覽器客戶端,只要您需要新的訪問令牌(例如大約每小時),就應該繼續調用gapi.auth.authorize。 第一次調用后,您可以設置immediate=true
,這將禁止任何UI。
首先,你做了一個拼寫錯誤,它缺少下划線:它是access_type
,而不是accesstype
。
然后,除了傳遞access_type
和approval_prompt
,還需要確保測試用戶刪除了應用的授權。 使用您的測試帳戶(而非您的應用帳戶)登錄Google,然后轉到帳戶權限並從列表中刪除您的應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.