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 umożliwia użytkownikom zapisywanie playlist muzycznych na Dysku Google. Możesz poprosić o podanie podstawowych informacji o użytkowniku podczas logowania, a później, gdy użytkownik będzie chciał zapisać pierwszą playlistę, poproś tylko o uprawnienia 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 „podstawowe” zakresy dostępu, które obejmują zakres logowania profile oraz wszystkie inne początkowe zakresy dostępu wymagane przez aplikację do działania. Gdy później użytkownik chce wykonać działanie wymagające dodatkowych zakresów, aplikacja prosi o te dodatkowe zakresy, a użytkownik zezwala na nie tylko 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}));
    });