es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo autenticar tanto la aplicación web como el backend con Google/OAuth2?

Estoy tratando de escribir una aplicación que:
1. En un navegador, autentica a un usuario con una cuenta de Google.
2. Llama a un servicio backend.
3. El backend accede a la unidad del usuario (y algunas otras cosas) y luego retorna JSON.

Frontend: copió un ejemplo de la web, puede autenticarse sin problemas.
Backend: Node.js/Passport.js. Copió el código de un ejemplo, puede autenticarse.

Pero ¿cómo autentico a un usuario en el navegador y luego hago una llamada a la API para que la API pueda acceder a Google Drive? ¿Cuál es el flujo esperado?

A. ¿La aplicación web autentica a los usuarios y luego pasa el id_token al servidor?
No puedo encontrar cómo implementar esto en un servidor…
o:
B. ¿El servidor envía la aplicación a, digamos, /auth/google/ en el mismo servidor, luego la aplicación obtiene un token del servidor?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay varias formas de autenticar a un usuario en el navegador y luego realizar una llamada a la API para acceder a Google Drive:

    1. Usando OAuth 2.0: Puede utilizar el protocolo OAuth 2.0 de Google para autenticar a un usuario en el navegador y obtener un token de acceso, que luego se puede usar para acceder a Google Drive del usuario a través de la API. Este es el método recomendado.

    El flujo sería el siguiente:

    • El usuario inicia sesión utilizando sus credenciales de Google en el front-end.
    • Su aplicación utiliza la biblioteca de cliente de la API de Google para obtener un código de autorización del servidor OAuth 2.0 de Google.
    • Su aplicación intercambia el código de autorización por un token de acceso y un token de actualización.
    • Su aplicación utiliza el token de acceso para realizar llamadas a la API y acceder a Google Drive del usuario.
    1. Usando Google Sign-In: Google Sign-In también es una opción para autenticar a los usuarios, lo cual implica crear un botón que invoca la API de Google para autenticarse y devolver un ID de usuario de Google y un token de acceso. Este enfoque se puede utilizar con la API de Google Drive de manera similar al enfoque de OAuth 2.0.

    El flujo sería el siguiente:

    • El usuario hace clic en un botón “Iniciar sesión con Google”, lo cual abre un cuadro de diálogo de Google Sign-In.
    • El usuario inicia sesión utilizando sus credenciales de Google y otorga acceso a su aplicación.
    • Después de una autenticación exitosa, Google devuelve un token de ID y un token de acceso a su front-end.
    • Su front-end envía el token de acceso al backend para utilizarlo en las llamadas a la API y acceder a Google Drive del usuario.

    Independientemente del enfoque que elija, se recomienda utilizar una biblioteca de autenticación probada como Passport.js para Node.js y seguir las guías oficiales de Google para el método de autenticación específico que seleccione.

Comments are closed.