Zusätzliche Berechtigungen anfordern

Wenn Sie eine Nutzerberechtigung für den Zugriff auf Nutzerdaten oder andere Ressourcen anfordern, können Sie mithilfe der inkrementellen Autorisierung alle Bereiche im Voraus in der ersten Anfrage oder nur bei Bedarf anfordern. Bei der schrittweisen Autorisierung fordert Ihre App zuerst nur die Bereiche an, die zum Starten der App erforderlich sind, und dann zusätzliche Bereiche, wenn neue Berechtigungen erforderlich sind. Dabei wird dem Nutzer der Grund für die Anfrage mitgeteilt.

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

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: Schaltfläche für die Anmeldung über Google 2.0 erstellen. Weitere Informationen zur inkrementellen Autorisierung im 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. 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

Fordere den Basisumfang profile an, wenn du die Google-Anmeldung initialisierst. 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 Zugriffsbereiche anfordern

Wenn zusätzliche Bereiche erforderlich sind, kannst du sie anfordern. Erstelle dazu einen Options-Builder mit den Bereichen, die du hinzufügen möchtest, und rufe 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}));
    });