Cuando se solicita permiso al usuario para acceder a sus datos u otras puedes solicitar todos los permisos por adelantado en la solicitud inicial o los alcances de las solicitudes solo según sea necesario, con la autorización incremental. Mediante el uso de la autorización incremental, tu app inicialmente solicita solo los alcances necesario para iniciar tu app y, luego, solicita permisos adicionales como permisos nuevos son obligatorios, en un contexto que identifique el motivo de la solicitud al usuario.
Por ejemplo, supongamos que tu app permite que los usuarios guarden playlists de música a Google Drive tu app puede solicitar información básica del usuario durante el acceso y, más tarde, cuando el usuario esté listo para guardar su primera playlist solicitar únicamente permisos de Google Drive.
Usa esta técnica si sospechas que los usuarios no acceden porque tu la pantalla de consentimiento sea abrumadora o no tenga claro por qué se le pregunta para ciertos permisos. Las siguientes instrucciones son para la Web y derivan de la instrucciones para agregar un botón de acceso del cliente: Cómo compilar un botón de Acceso con Google 2.0. Puedes obtener más información sobre la autorización incremental para la Web en el Documentación de OAuth 2.0
Cómo solicitar permisos adicionales
Cuando accedes, tu app solicita la "base" permisos, que incluyen el permiso de acceso
profile
y cualquier otro alcance inicial que tu app requiera para el funcionamiento.
Más adelante, cuando el usuario quiera realizar una acción que requiera
permisos, tu app solicita esos permisos adicionales y el usuario solo los autoriza
los nuevos alcances desde una pantalla de consentimiento.
Paso 1: Solicita permisos base
Solicita el alcance base profile
cuando inicialices el Acceso con Google. Esta
el paso se incluye en
Cómo compilar un botón de Acceso con Google 2.0.
auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin', /** Default value **/
scope: 'profile' }); /** Base scope **/
Paso 2: Solicita permisos adicionales
Siempre que se necesiten permisos adicionales, solicítalos construyendo una opción
Compilador con los permisos que deseas agregar y, luego, llama a 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}));
});