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