Zusätzliche Berechtigungen anfordern

Wenn Sie eine Nutzerberechtigung für den Zugriff auf Nutzerdaten oder andere Ressourcen anfordern, können Sie alle Bereiche im Voraus in der ersten Anfrage anfordern oder Bereiche nur bei Bedarf über eine inkrementelle Autorisierung anfordern. Mit der inkrementellen Autorisierung fordert Ihre Anwendung zuerst nur die Bereiche an, die zum Starten der Anwendung erforderlich sind. Dann fordert sie zusätzliche Bereiche an, wenn neue Berechtigungen erforderlich sind. Dabei wird der Grund für die Anfrage beim Nutzer angegeben.

Angenommen, Ihre App lässt Nutzer Musik-Playlists in Google Drive speichern. Ihre App kann grundlegende Nutzerinformationen bei der Anmeldung anfordern und später, wenn der Nutzer bereit ist, seine erste Playlist zu speichern, nur nach Google Drive-Berechtigungen fragen.

Verwenden Sie diese Methode, wenn Sie vermuten, dass sich Nutzer nicht anmelden, weil Ihr Zustimmungsbildschirm zu viel ist oder Sie unsicher sind, warum sie nach bestimmten Berechtigungen gefragt werden. Die folgende Anleitung bezieht sich auf das Web und beruht auf der 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 Dokumentation zu OAuth 2.0.

Zusätzliche Bereiche anfordern

Bei der Anmeldung fordert Ihre Anwendung "Basisbereiche" an, die aus dem Anmeldebereich profile und allen anderen anfänglichen Bereichen bestehen, die Ihre Anwendung für den Betrieb benötigt. Wenn der Nutzer später eine Aktion ausführen möchte, für die zusätzliche Bereiche erforderlich sind, fordert Ihre Anwendung diese zusätzlichen Bereiche an und der Nutzer autorisiert nur die neuen Bereiche über einen Zustimmungsbildschirm.

Schritt 1: Basisbereiche anfordern

Fordere beim Initialisieren von Google Log-in den Basisbereich profile an. Dieser Schritt wird im Artikel Google 2.0 Log-in-Schaltfläche erstellen beschrieben.

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 Bereiche anfordern

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

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