Wenn Sie die Nutzerberechtigung für den Zugriff auf Nutzerdaten oder andere Ressourcen anfordern, können Sie alle Bereiche in der ersten Anfrage anfordern oder mithilfe der inkrementellen Autorisierung nur nach Bedarf. 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 es Nutzern, Musikplaylists in Google Drive zu speichern. Ihre App kann bei der Anmeldung grundlegende Nutzerinformationen anfordern und später, wenn der Nutzer seine erste Playlist speichern möchte, nur Google Drive-Berechtigungen anfordern.
Verwenden Sie diese Methode, wenn Sie vermuten, dass sich Nutzer nicht anmelden, weil Ihr Einwilligungsbildschirm überladen ist oder sie nicht verstehen, warum sie um bestimmte Berechtigungen gebeten 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, für die zusätzliche Bereiche erforderlich sind, fordert Ihre App diese zusätzlichen Bereiche an und der Nutzer autorisiert nur die neuen Bereiche über einen Einwilligungsbildschirm.
Schritt 1: Basisbereiche anfordern
Fordere den Basisumfang profile
an, wenn du die Google-Anmeldung initialisierst. Dieser Schritt ist im Artikel Schaltfläche für die Anmeldung über Google 2.0 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, 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}));
});