Zusätzliche Berechtigungen anfordern

Wenn Sie die Nutzerberechtigung zum Zugriff auf Nutzerdaten oder andere Ressourcen enthalten, können Sie alle Bereiche im Voraus in der ersten Anfrage oder Anfragebereiche nur bei Bedarf mithilfe der inkrementellen Autorisierung anfordern. Bei Verwendung der inkrementellen Autorisierung fordert Ihre Anwendung anfangs nur die Bereiche an erforderlich, um Ihre Anwendung zu starten, und fordert dann zusätzliche Bereiche als neue Berechtigungen an in einem Kontext, der den Grund für die Anfrage an die Nutzer.

Angenommen, Ihre App ermöglicht es Nutzern, Musikplaylists zu speichern auf Google Drive, kann Ihre App bei der Anmeldung grundlegende Nutzerinformationen anfordern, Wenn der Nutzer seine erste Playlist speichern möchte, nur Google Drive-Berechtigungen anfordern.

Verwenden Sie diese Technik, wenn Sie vermuten, dass sich Nutzer nicht anmelden, Der Zustimmungsbildschirm ist überladen oder ist sich nicht sicher, warum die Frage gestellt wird. für bestimmte Berechtigungen. Die folgenden Anweisungen gelten für das Web und basieren auf den Anleitung zum Hinzufügen einer clientseitigen Anmeldeschaltfläche: Google 2.0-Anmeldeschaltfläche erstellen Weitere Informationen zur inkrementellen Autorisierung für das Web finden Sie in der OAuth 2.0-Dokumentation

Zusätzliche Bereiche anfordern

Bei der Anmeldung fordert Ihre App „Basisbereiche“ an, die aus dem Anmeldebereich profile und allen anderen anfänglichen Bereichen bestehen, die Ihre App für den Betrieb benötigt. Später, wenn der Nutzer eine Aktion ausführen möchte, die zusätzliche Bereiche angefordert, fordert Ihre App diese zusätzlichen Bereiche an und der Nutzer autorisiert nur von einem Zustimmungsbildschirm aus.

Schritt 1: Basisbereiche anfordern

Fordern Sie den Basisbereich profile an, wenn Sie Google Log-in initialisieren. Dieses Schritt ist in Google 2.0-Anmeldeschaltfläche erstellen

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

Schritt 2: Zusätzliche Zugriffsbereiche anfordern

Wenn zusätzliche Bereiche benötigt werden, fordern Sie diese durch Erstellen einer Option an. mit den Bereichen, die Sie hinzufügen möchten, und rufen Sie dann user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction); auf:

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}));
    });