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 mit inkrementeller 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 den 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 überladen ist oder nicht wissen, warum er gefragt 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 „base“ an Bereiche, bestehend aus dem Anmeldebereich
profile
und alle anderen anfänglichen Bereiche, die Ihre Anwendung 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 Bereiche 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}));
});