Las cuentas se vinculan mediante los flujos implícitos y de código de autorización de OAuth 2.0 estándar de la industria. Tu servicio debe ser compatible con los extremos de autorización y intercambio de tokens que cumplan con OAuth 2.0.
En el flujo implícito, Google abre el extremo de autorización en el navegador del usuario. Después de que el acceso sea exitoso, se muestra un token de acceso de larga duración a Google. Este token de acceso ahora se incluye en cada solicitud enviada desde Google.
En el flujo de código de autorización, necesitas dos extremos:
El extremo de autorización, que presenta la IU de acceso a los usuarios que aún no accedieron. El extremo de autorización también crea un código de autorización de corta duración para registrar el acceso solicitado por los usuarios.
El extremo de intercambio de tokens, que es responsable de dos tipos de intercambios:
- Intercambia un código de autorización por un token de actualización de larga duración y un token de acceso de corta duración. Este intercambio se produce cuando el usuario pasa por el flujo de vinculación de cuentas.
- Intercambia un token de actualización de larga duración por un token de acceso de corta duración. Este intercambio se produce cuando Google necesita un nuevo token de acceso porque venció.
Elige un flujo de OAuth 2.0
Aunque el flujo implícito es más fácil de implementar, Google recomienda que los tokens de acceso emitidos por el flujo implícito nunca venzan. Esto se debe a que el usuario se ve obligado a vincular su cuenta de nuevo después de que un token caduque con el flujo implícito. Si necesitas el vencimiento del token por razones de seguridad, te recomendamos que uses el flujo de código de autorización en su lugar.
Pautas de diseño
En esta sección, se describen los requisitos de diseño y las recomendaciones para la pantalla del usuario que alojas en los flujos de vinculación de OAuth. Una vez que la app la llama, tu plataforma le muestra al usuario un acceso a la página de Google y a la pantalla de consentimiento de vinculación de la cuenta. Cuando el usuario da su consentimiento para vincular las cuentas, se lo redirige a la app de Google.

Requisitos
- Debes comunicar que la cuenta del usuario se vinculará a Google, no a un producto de Google específico, como Google Home o el Asistente de Google.
Recomendaciones
Te recomendamos que hagas lo siguiente:
Muestra la Política de Privacidad de Google. Incluye un vínculo a la Política de Privacidad de Google en la pantalla de consentimiento.
Datos que se compartirán. Utiliza un lenguaje claro y conciso para indicarle al usuario qué datos de Google requiere y por qué.
Llamado a la acción claro. Indica un llamado a la acción claro en tu pantalla de consentimiento, como "Aceptar y vincular". Esto se debe a que los usuarios deben comprender qué datos deben compartir con Google para vincular sus cuentas.
Capacidad de cancelación. Proporciona a los usuarios una forma de regresar o cancelar si deciden no vincularse.
Borrar el proceso de acceso Asegúrate de que los usuarios tengan un método claro para acceder a su Cuenta de Google, como los campos para su nombre de usuario y contraseña, o para acceder con Google.
Capacidad de desvinculación. Ofrece un mecanismo para que los usuarios se desvinculen, como una URL que dirige a la configuración de su cuenta en tu plataforma. Como alternativa, puedes incluir un vínculo a la Cuenta de Google en la que los usuarios puedan administrar su cuenta vinculada.
Capacidad para cambiar la cuenta de usuario Sugerir un método para que los usuarios cambien sus cuentas Esto es especialmente beneficioso si los usuarios tienden a tener varias cuentas.
- Si un usuario debe cerrar la pantalla de consentimiento para cambiar de cuenta, envía un error recuperable a Google a fin de que el usuario pueda acceder a la cuenta deseada con la vinculación de OAuth y el flujo implícito.
Incluya su logotipo. Muestre el logotipo de su empresa en la pantalla de consentimiento. Usa tus lineamientos de estilo para ubicar tu logotipo. Si también deseas mostrar el logotipo de Google, consulta Logotipos y marcas.

Crea el proyecto
Para crear tu proyecto a fin de usar la vinculación de cuentas, haz lo siguiente:
- Go to the Google API Console.
- Haz clic en Crear proyecto .
- Ingrese un nombre o acepte la sugerencia generada.
- Confirme o edite los campos restantes.
- Haz clic en Crear .
Para ver su ID de proyecto:
- Go to the Google API Console.
- Encuentra tu proyecto en la tabla de la página de inicio. El ID del proyecto aparece en la columna ID .
Configura tu pantalla de consentimiento de OAuth
El proceso de vinculación de cuentas de Google incluye una pantalla de consentimiento que indica a los usuarios que la aplicación solicita acceso a sus datos, el tipo de datos que solicitan y las condiciones que se aplican. Deberá configurar la pantalla de consentimiento de OAuth antes de generar un ID de cliente de la API de Google.
- Abre la página de la pantalla de consentimiento de OAuth de la consola de las API de Google.
- Si se le solicita, seleccione el proyecto que acaba de crear.
En la página de consentimiento de OAuth, llene el formulario y haga clic en el botón “Guardar”.
Nombre de la aplicación: El nombre de la aplicación que solicita su consentimiento. El nombre debe reflejar con precisión tu aplicación y ser coherente con el nombre que los usuarios ven en otra parte. El nombre de la aplicación se mostrará en la pantalla de consentimiento de vinculación de cuentas.
Logotipo de la app: Se muestra una imagen en la pantalla de consentimiento que ayudará a los usuarios a reconocer tu app. El logotipo se muestra en la pantalla de consentimiento de vinculación de cuentas y en la configuración de la cuenta.
Correo electrónico de asistencia: Para que los usuarios se comuniquen con usted con preguntas sobre su consentimiento.
Alcances para las API de Google: Los alcances permiten que tu aplicación acceda a los datos privados de Google de tus usuarios. Para el caso de uso de vinculación de cuentas de Google, el alcance predeterminado (correo electrónico, perfil, openid) es suficiente, no es necesario que agregues permisos sensibles. Por lo general, se recomienda solicitar alcances de forma incremental, en el momento en que se requiere acceso, en lugar de hacerlo por adelantado. Más información
Dominios autorizados: Para protegerlos a usted y a sus usuarios, Google solo permite que se usen dominios autorizados en las aplicaciones que se autentiquen con OAuth. Los vínculos de tus aplicaciones deben estar alojados en dominios autorizados. Más información
Vínculo a la página principal de la aplicación: Es la página principal de tu aplicación. Debe estar alojado en un dominio autorizado.
Vínculo a la Política de Privacidad de la app: Se muestra en la pantalla de consentimiento de la vinculación de cuentas de Google. Debe estar alojado en un dominio autorizado.
Vínculo a las Condiciones del Servicio de la aplicación (opcional): Debe estar alojado en un dominio autorizado.
Figura 1: Pantalla de consentimiento de vinculación de cuentas de Google para una aplicación ficticia, Tunery
Marca tu &estado de verificación" si tu aplicación necesita verificación, haz clic en el botón "Enviar para verificación" a fin de enviar tu solicitud para verificación. Consulta los requisitos de verificación de OAuth para obtener más información.
Implementa tu servidor OAuth
To support the OAuth 2.0 implicit flow, your service makes an authorization endpoint available by HTTPS. This endpoint is responsible for authentication and obtaining consent from users for data access. The authorization endpoint presents a sign-in UI to your users that aren't already signed in and records consent to the requested access.
When a Google application needs to call one of your service's authorized APIs, Google uses this endpoint to get permission from your users to call these APIs on their behalf.
A typical OAuth 2.0 implicit flow session initiated by Google has the following flow:
- Google opens your authorization endpoint in the user's browser. The user signs in, if not signed in already, and grants Google permission to access their data with your API, if they haven't already granted permission.
- Your service creates an access token and returns it to Google. To do so, redirect the user's browser back to Google with the access token attached to the request.
- Google calls your service's APIs and attaches the access token with each request. Your service verifies that the access token grants Google authorization to access the API and then completes the API call.
Handle authorization requests
When a Google application needs to perform account linking via an OAuth 2.0 implicit flow, Google sends the user to your authorization endpoint with a request that includes the following parameters:
Authorization endpoint parameters | |
---|---|
client_id |
The client ID you assigned to Google. |
redirect_uri |
The URL to which you send the response to this request. |
state |
A bookkeeping value that is passed back to Google unchanged in the redirect URI. |
response_type |
The type of value to return in the response. For the OAuth 2.0 implicit
flow, the response type is always token . |
user_locale |
The Google Account language setting in RFC5646 format used to localize your content in the user's preferred language. |
For example, if your authorization endpoint is available at
https://myservice.example.com/auth
, a request might look like the following:
GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token&user_locale=LOCALE
For your authorization endpoint to handle sign-in requests, do the following steps:
Verify the
client_id
andredirect_uri
values to prevent granting access to unintended or misconfigured client apps:- Confirm that the
client_id
matches the client ID you assigned to Google. - Confirm that the URL specified by the
redirect_uri
parameter has the following form:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
- Confirm that the
Check if the user is signed in to your service. If the user isn't signed in, complete your service's sign-in or sign-up flow.
Generate an access token for Google to use to access your API. The access token can be any string value, but it must uniquely represent the user and the client the token is for and must not be guessable.
Send an HTTP response that redirects the user's browser to the URL specified by the
redirect_uri
parameter. Include all of the following parameters in the URL fragment:access_token
: The access token you just generatedtoken_type
: The stringbearer
state
: The unmodified state value from the original request
The following is an example of the resulting URL:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING
Google's OAuth 2.0 redirect handler receives the access token and confirms
that the state
value hasn't changed. After Google has obtained an
access token for your service, Google attaches the token to subsequent calls
to your service APIs.
Manejar solicitudes de información de usuario
El punto final userinfo es un recurso protegido OAuth 2.0 que las reclamaciones de retorno sobre el usuario vinculado. La implementación y el alojamiento del punto final de userinfo es opcional, excepto en los siguientes casos de uso:
- Vinculado cuenta Inicio de sesión con Google un toque.
- Suscripción sin fricción en Android TV.
Una vez que el token de acceso se ha recuperado correctamente de su punto final de token, Google envía una solicitud a su punto final de información de usuario para recuperar información de perfil básica sobre el usuario vinculado.
encabezados de solicitud de punto final de userinfo | |
---|---|
Authorization header | El token de acceso de tipo Bearer. |
Por ejemplo, si su userinfo punto final está disponible en https://myservice.example.com/userinfo
, una solicitud puede tener un aspecto como el siguiente:
GET /userinfo HTTP/1.1 Host: myservice.example.com Authorization: Bearer ACCESS_TOKEN
Para que su punto final de userinfo maneje las solicitudes, siga los siguientes pasos:
- Extraiga el token de acceso del encabezado de autorización y devuelva la información para el usuario asociado con el token de acceso.
- Si el token de acceso no es válido, devuelve un error HTTP 401 no autorizado con el uso de la
WWW-Authenticate
encabezado de respuesta. A continuación se muestra un ejemplo de una respuesta de error userinfo:HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="The Access Token expired"
Si un 401 no autorizado, o cualquier otra respuesta de error sin éxito se devuelve durante el proceso de vinculación, el error será no recuperable, el token recuperada será descartado y el usuario tendrá para iniciar el proceso de vinculación nuevamente. Si el token de acceso es válido, el retorno y la respuesta HTTP 200 con el siguiente objeto JSON en el cuerpo de la respuesta HTTPS:
{ "sub": "USER_UUID", "email": "EMAIL_ADDRESS", "given_name": "FIRST_NAME", "family_name": "LAST_NAME", "name": "FULL_NAME", "picture": "PROFILE_PICTURE", }
Si su userinfo de punto final devuelve una respuesta de éxito HTTP 200, el recuperado token y reclamaciones se registran en contra de Google del usuario cuenta.respuesta del punto final de userinfo sub
Una identificación única que identifica al usuario en su sistema. email
Dirección de correo electrónico del usuario. given_name
Opcional: Nombre del usuario. family_name
Opcional: Apellido del usuario. name
Opcional: Nombre completo del usuario. picture
Opcional: Foto del perfil de usuario.
Cómo validar la implementación
Puede validar su aplicación mediante el uso de la Zona de juegos OAuth 2.0 herramienta.
En la herramienta, siga los siguientes pasos:
- Haga clic en Configuración de para abrir la ventana de configuración de OAuth 2.0.
- En el campo de flujo de OAuth, seleccione el lado del cliente.
- En el campo de OAuth puntos finales, seleccione Personalizar.
- Especifique su punto final de OAuth 2.0 y el ID de cliente que asignó a Google en los campos correspondientes.
- En la sección Paso 1, no seleccione ninguna alcances de Google. En su lugar, deje este campo en blanco o escriba un ámbito válido para su servidor (o una cadena arbitraria si no utiliza ámbitos OAuth). Cuando haya terminado, haga clic en Autorizar API.
- En las secciones Paso 2 y el Paso 3, vaya a través del flujo de OAuth 2.0 y verificar que cada paso funciona como se pretende.
Puede validar su aplicación mediante el uso de la cuenta de Google Vinculación demostración herramienta.
En la herramienta, siga los siguientes pasos:
- Haga clic en el Inicio de sesión con el botón de Google.
- Elija la cuenta que desea vincular.
- Ingrese la identificación del servicio.
- Opcionalmente, ingrese uno o más ámbitos para los que solicitará acceso.
- Haga clic en Inicio de demostración.
- Cuando se le solicite, confirme que puede dar su consentimiento y rechazar la solicitud de vinculación.
- Confirme que se le redirige a su plataforma.