Cómo solicitar permisos adicionales

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Cuando solicitas permiso del usuario para acceder a sus datos o a otros recursos, puedes solicitar todos los alcances por adelantado en la solicitud inicial o solicitar los permisos solo según sea necesario, mediante la autorización incremental. Con la autorización incremental, tu app solicita inicialmente solo los alcances necesarios para iniciarla, luego solicita permisos adicionales a medida que se requieren permisos nuevos, en un contexto que identifica el motivo de la solicitud al usuario.

Por ejemplo, supongamos que tu app permite que los usuarios guarden listas de reproducción de música en Google Drive; que tu app pueda solicitar información básica del usuario al acceder y que, más adelante, cuando el usuario esté listo para guardar su primera lista de reproducción, solo solicite permisos de Google Drive.

Usa esta técnica si sospechas que los usuarios no están accediendo porque la pantalla de consentimiento es abrumadora o se sienten confundidos respecto de por qué se les solicitan ciertos permisos. Las siguientes instrucciones son para la Web y se derivan de las instrucciones para agregar un botón de acceso del cliente: Compila un botón de Acceso con Google 2.0. Puedes leer más sobre la autorización incremental para la Web en la documentación de OAuth 2.0.

Solicita permisos adicionales

Durante el acceso, la app solicita "alcances base", que consisten en el permiso de acceso profile más cualquier alcance inicial que tu app requiera para la operación. Más adelante, cuando el usuario quiera realizar una acción que requiera permisos adicionales, tu app solicitará esos alcances adicionales y autorizará solo los alcances nuevos desde una pantalla de consentimiento.

Paso 1: Solicita permisos de base

Solicita el permiso base profile cuando inicialices el Acceso con Google. Este paso se incluye en Compila 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 alcances adicionales

Cuando se requieran alcances adicionales, debes solicitarlos mediante la creación de un compilador de opciones con los alcances que deseas agregar y, luego, llamar a 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}));
    });