要求其他權限

,瞭解如何調查及移除這項存取權。

向使用者要求存取使用者資料或其他內容的權限時 您可以在初始要求中預先要求所有範圍,或者 透過漸進式授權要求範圍。 使用漸進式授權,應用程式一開始只會要求範圍 才能啟動應用程式,然後要求其他範圍做為新權限 在結構定義中指明請求原因 內容。

舉例來說,假設您的應用程式允許使用者儲存音樂播放清單 到 Google 雲端硬碟;應用程式可在使用者登入時要求基本使用者資訊 之後,當使用者準備好儲存第一個播放清單時 只要求 Google 雲端硬碟權限。

如果您懷疑使用者因您的 同意畫面讓使用者感到不堪負荷,或不清楚為何問自己 授予特定權限 以下操作說明是針對網頁,衍生自 新增用戶端登入按鈕的操作說明: 建立 Google 2.0 登入按鈕。 如要進一步瞭解網頁版的漸進式授權,請參閱 OAuth 2.0 說明文件

要求其他範圍

應用程式會在登入時要求「base」包括登入範圍 profile 加上應用程式執行作業所需的任何其他初始範圍。 之後,當使用者想要執行需要其他額外項目的動作時 您的應用程式會要求這些額外的範圍,而使用者僅須授權 然後在同意畫面中顯示新的範圍

步驟 1:要求基礎範圍

初始化 Google 登入時,要求基礎範圍 profile。這個 步驟包含在 建立 Google 2.0 登入按鈕

auth2 = gapi.auth2.init({
    client_id: 'CLIENT_ID.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin', /** Default value **/
    scope: 'profile' });                /** Base scope **/

步驟 2:要求其他範圍

如果需要其他範圍,請透過建構選項要求這些範圍 具有您要新增的範圍,然後呼叫 user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);

const options = new gapi.auth2.SigninOptionsBuilder();
options.setScope('email https://www.googleapis.com/auth/drive');

googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
    function(success){
      console.log(JSON.stringify({message: "success", value: success}));
    },
    function(fail){
      alert(JSON.stringify({message: "fail", value: fail}));
    });