Zusätzliche Berechtigungen anfordern

Wenn Sie eine Nutzerberechtigung für den Zugriff auf Nutzerdaten oder andere Ressourcen anfordern, können Sie mit der inkrementellen Autorisierung alle Bereiche im Voraus in der ersten Anfrage oder nur bei Bedarf anfordern. Bei Verwendung der inkrementellen Autorisierung fordert Ihre Anwendung anfangs nur die Bereiche an, die zum Starten Ihrer Anwendung erforderlich sind. Bei Bedarf werden zusätzliche Bereiche angefordert, wenn neue Berechtigungen erforderlich sind. Dies geschieht in einem Kontext, der den Grund für die Anfrage an den Nutzer identifiziert.

Angenommen, Ihre App ermöglicht Nutzern das Speichern von Musikplaylists in Google Drive. Ihre App kann bei der Anmeldung grundlegende Nutzerinformationen anfordern und später, wenn der Nutzer bereit ist, seine erste Playlist zu speichern, nur Google Drive-Berechtigungen angefordert werden.

Verwenden Sie diese Technik, wenn Sie vermuten, dass sich Nutzer nicht anmelden, weil Ihr Zustimmungsbildschirm zu komplex ist, oder Sie nicht wissen, warum sie nach bestimmten Berechtigungen gefragt werden. Die folgende Anleitung bezieht sich auf das Web und basiert auf der Anleitung zum Hinzufügen einer clientseitigen Anmeldeschaltfläche: Google 2.0-Log-in-Schaltflä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 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, die zusätzliche Bereiche erfordert, fordert Ihre Anwendung diese zusätzlichen Bereiche an und der Nutzer autorisiert nur die neuen Bereiche über einen Zustimmungsbildschirm.

Schritt 1: Basisbereiche anfordern

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

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 erforderlich sind, fordern Sie sie 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 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}));
    });