Wysyłanie prośby o dodatkowe uprawnienia

Gdy prosisz użytkownika o dostęp do danych użytkownika lub innych zasobów, możesz poprosić o wszystkie zakresy z góry w pierwszym żądaniu lub tylko w razie potrzeby przy użyciu autoryzacji przyrostowej. Korzystając z autoryzacji przyrostowej, aplikacja początkowo żąda tylko zakresów niezbędnych do uruchomienia aplikacji, a potem prosi o kolejne zakresy (w zależności od wymaganych uprawnień) w kontekście określającym powód żądania do użytkownika.

Załóżmy na przykład, że aplikacja umożliwia użytkownikom zapisywanie playlist muzycznych na Dysku Google. Aplikacja może podczas logowania prosić o podstawowe informacje o użytkowniku, a gdy będzie gotowy do zapisania pierwszej playlisty, poprosić tylko o uprawnienia do Dysku Google.

Skorzystaj z tej metody, jeśli podejrzewasz, że użytkownicy nie logują się, ponieważ Twój ekran zgody jest przytłaczający lub nie wiesz, dlaczego są proszeni o określone uprawnienia. Te instrukcje są przeznaczone dla internetu i pochodzą z instrukcji dodawania przycisku logowania po stronie klienta: Tworzenie przycisku logowania do Google 2.0. Więcej informacji o przyrostowej autoryzacji w internecie znajdziesz w dokumentacji protokołu OAuth 2.0.

Żądanie dodatkowych zakresów

Podczas logowania aplikacja prosi o zakresy „podstawowe”, które obejmują zakres logowania profile oraz wszelkie inne zakresy początkowe wymagane przez aplikację do działania. Później, gdy użytkownik zechce wykonać działanie, które wymaga dodatkowych zakresów, aplikacja poprosi o te dodatkowe zakresy, a użytkownik autoryzuje tylko nowe zakresy na ekranie zgody.

Krok 1. Poproś o zakresy podstawowe

Podczas inicjowania Logowania przez Google wyślij żądanie zakresu podstawowego profile. Ten krok jest omówiony w artykule o tworzeniu przycisku logowania w 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

Za każdym razem, gdy potrzebujesz dodatkowych zakresów, możesz o nie prosić, tworząc konstruktor opcji z zakresami, które chcesz dodać, a następnie wywołując user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);:

const option = new gapi.auth2.SigninOptionsBuilder();
option.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}));
    });