Wysyłanie prośby o dodatkowe uprawnienia

.

Jeśli prosisz użytkownika o dostęp do danych lub innych możesz zażądać wszystkich zakresów z góry w pierwszym żądaniu lub zakresy żądania tylko stosownie do potrzeb przy użyciu autoryzacji przyrostowej. Przy użyciu autoryzacji przyrostowej Twoja aplikacja początkowo żąda tylko zakresów wymagane do uruchomienia aplikacji, a następnie prosi o dodatkowe zakresy jako nowe uprawnienia są wymagane w kontekście, który określa powód wysłania żądania do użytkownika.

Załóżmy na przykład, że Twoja aplikacja pozwala użytkownikom zapisywać playlisty muzyczne. na Dysk Google; może podczas logowania prosić o podstawowe dane użytkownika, a później, gdy użytkownik będzie gotowy do zapisania pierwszej playlisty, prosić tylko o uprawnienia do Dysku Google.

Użyj tej metody, jeśli podejrzewasz, że użytkownicy nie logują się, ponieważ ekran zgody przytłacza lub dezorientuje, dlaczego wyświetlane są prośby dla pewnych uprawnień. Poniższe instrukcje dotyczą internetu i pochodzą z instrukcje dodawania przycisku logowania po stronie klienta: Tworzenie przycisku logowania Google 2.0. Więcej informacji na temat przyrostowej autoryzacji w witrynach internetowych znajdziesz w Dokumentacja protokołu OAuth 2.0

Prośba o dodatkowe zakresy

Podczas logowania aplikacja prosi o dostęp „base” zakresy, które obejmują zakres logowania profile oraz wszelkie inne zakresy początkowe wymagane do działania. Później, gdy użytkownik chce wykonać działanie, które wymaga dodatkowych aplikacji, aplikacja żąda tych dodatkowych zakresów, a użytkownik je autoryzuje tylko nowych zakresów na ekranie zgody.

Krok 1. Poproś o zakresy podstawowe

Poproś o podstawowy zakres profile podczas inicjowania Logowania przez Google. Ten krok jest uwzględniony w Tworzenie przycisku logowania Google 2.0.

auth2 = gapi.auth2.init({
    client_id: 'CLIENT_ID.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin', /** Default value **/
    scope: 'profile' });                /** Base scope **/

Krok 2. Poproś o dodatkowe zakresy

Jeśli potrzebujesz dodatkowych zakresów, poproś o nie, tworząc opcje kreator z zakresami, które chcesz dodać, a następnie wywołaj funkcję user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);:

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