setaccesstype secret playground google example oauth-2.0 google-oauth

oauth-2.0 - secret - refresh token google api



La aplicación sigue pidiendo permiso para "tener acceso sin conexión", ¿por qué? (5)

Después de haber autorizado la aplicación con oAuth2 y adquirir los permisos para los ámbitos solicitados, sigo recibiendo una pantalla preguntándome si otorgo permiso a la aplicación para tener acceso sin conexión , cada vez que intento iniciar sesión con Google oAuth2. ¿No es algo que no debería volver a aparecer una vez que le concedo permiso para tenerlo?


Este mensaje podría venir debido a dos parámetros,

  • access_type (si está ''fuera de línea'')
  • approval_prompt (si es ''force'')

asegúrese de haber configurado access_type en ''online'' y apporoval_prompt en ''auto''

$client->setAccessType(''online''); $client->setApprovalPrompt(''auto'') ;


Esto no es un error. Este es el escenario normal de google oauth2.

Primero, procese el consentimiento de la siguiente manera:

  1. El usuario acepta que la aplicación obtenga información sobre el usuario.
  2. Cuando el usuario hace clic en el botón Aceptar, el navegador guardará la información de consentimiento en una cookie y la cuenta de Google guardará el permiso (consulte https://security.google.com/settings/security/permissions )

Del segundo proceso:

El navegador comprueba el permiso de cookies de la cuenta de Google.

  • Si la cookie existe en el navegador y tiene permiso para esta aplicación ( https://security.google.com/settings/security/permissions ): se ignorará la pantalla de consentimiento
  • Si existe una cookie en el navegador pero no tiene permiso para esta aplicación: se mostrará la pantalla de consentimiento
  • Si la cookie no existe en el navegador: la aplicación mostrará ''Tener acceso sin conexión''.


Supongo que su aplicación tiene approval_prompt = force para forzar el OAuth cada vez. Como el usuario ya ha autorizado los ámbitos solicitados, no es necesario repetirlos. Sin embargo, la pantalla tiene que decir algo, por lo que, a falta de mejores ideas, Google solicita ''acceso sin conexión''.

Solo asegúrate de no estar forzando auth y deberías estar bien.


¿Utiliza el parámetro approval_prompt ? Intente no volver a solicitar acceso sin conexión si ya tiene un token de actualización. Debe permanecer válido incluso si el usuario inicia sesión de nuevo, sin solicitar acceso sin conexión.

Una referencia sobre esto se puede encontrar here .