要求額外權限

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

使用漸進式授權時,應用程式最初只會要求啟動應用程式所需的範圍,然後要求新權限需要新權限,藉此瞭解向使用者要求要求的原因。

例如,假設您的應用程式允許使用者將音樂播放清單儲存至 Google 雲端硬碟;應用程式可在登入時要求取得基本使用者資訊,而當使用者準備好儲存第一個播放清單時,僅要求 Google 雲端硬碟權限即可。

如果您懷疑使用者同意登入畫面有誤,或是他們對某些權限要求存取權,因而感到困惑,請使用這項技巧。 以下操作說明適用於網路,衍生自新增用戶端登入按鈕的操作說明:建立 Google 2.0 登入按鈕。 如要進一步瞭解網站的漸進式授權,請參閱 OAuth 2.0 說明文件

要求其他範圍

登入時,您的應用程式會要求「基礎」範圍,包括登入範圍 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 option = new gapi.auth2.SigninOptionsBuilder();
option.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}));
    });