Pytając użytkownika o uprawnienia dostępu do danych użytkownika lub innych zasobów, możesz z góry zażądać wszystkich zakresów w żądaniu lub tylko w razie potrzeby, korzystając z autoryzacji przyrostowej. Przy użyciu autoryzacji przyrostowej Twoja aplikacja początkowo żąda tylko zakresów wymaganych do uruchomienia aplikacji, a następnie w miarę potrzeby prosi o dodatkowe zakresy w kontekście, który określa przyczynę żądania wysyłanego do użytkownika.
Załóżmy na przykład, że aplikacja umożliwia użytkownikom zapisywanie playlist muzycznych na Dysku Google. Aplikacja może prosić o podstawowe dane użytkownika przy logowaniu, a później, gdy użytkownik będzie gotowy do zapisania swojej pierwszej playlisty, prosi tylko o uprawnienia do korzystania z Dysku Google.
Skorzystaj z tej metody, jeśli podejrzewasz, że użytkownicy nie logują się, ponieważ ekran zgody przytłacza lub nie wiesz, dlaczego prosimy o przyznanie określonych uprawnień. Poniższe instrukcje dotyczą internetu i pochodzą z instrukcji dodawania przycisku logowania po stronie klienta: Tworzenie przycisku logowania przez Google 2.0. Więcej informacji o przyrostowej autoryzacji w internecie znajdziesz w dokumentacji protokołu OAuth 2.0.
Prośba o dodatkowe zakresy
Podczas logowania aplikacja prosi o zakresy „podstawowe” obejmujące 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 zakresów, aplikacja prosi o te zakresy, a użytkownik autoryzuje na ekranie zgody tylko nowe zakresy.
Krok 1. Poproś o zakresy podstawowe
Poproś o podstawowy zakres profile
podczas inicjowania Logowania przez Google. Ten krok jest opisany w artykule o tworzeniu 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 kreator opcji z zakresami, które chcesz dodać, a następnie wywołaj 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}));
});