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.
In the implicit flow, Google opens your authorization endpoint in the user's browser. After successful sign in, you return a long-lived access token to Google. This access token is now included in every request sent from Google.
In the authorization code flow, you need two endpoints:
The authorization endpoint, which presents the sign-in UI to your users that aren't already signed in. The authorization endpoint also creates a short-lived authorization code to record users' consent to the requested access.
The token exchange endpoint, which is responsible for two types of exchanges:
- Exchanges an authorization code for a long-lived refresh token and a short-lived access token. This exchange happens when the user goes through the account linking flow.
- Exchanges a long-lived refresh token for a short-lived access token. This exchange happens when Google needs a new access token because the one it had expired.
Choose an OAuth 2.0 flow
Although the implicit flow is simpler to implement, Google recommends that access tokens issued by the implicit flow never expire. This is because the user is forced to link their account again after a token expires with the implicit flow. If you need token expiration for security reasons, we strongly recommend that you use the authorization code flow instead.
Design guidelines
This section describes the design requirements and recommendations for the user screen that you host for OAuth linking flows. After it's called by Google's app, your platform displays a sign in to Google page and account linking consent screen to the user. The user is directed back to Google's app after giving their consent to link accounts.

Requirements
- You must communicate that the user’s account will be linked to Google, not a specific Google product like Google Home or Google Assistant.
Recommendations
We recommend that you do the following:
Display Google's Privacy Policy. Include a link to Google’s Privacy Policy on the consent screen.
Data to be shared. Use clear and concise language to tell the user what data of theirs Google requires and why.
Clear call-to-action. State a clear call-to-action on your consent screen, such as “Agree and link.” This is because users need to understand what data they're required to share with Google to link their accounts.
Ability to cancel. Provide a way for users to go back or cancel, if they choose not to link.
Clear sign-in process. Ensure that users have clear method for signing in to their Google account, such as fields for their username and password or Sign in with Google.
Ability to unlink. Offer a mechanism for users to unlink, such as a URL to their account settings on your platform. Alternatively, you can include a link to Google Account where users can manage their linked account.
Ability to change user account. Suggest a method for users to switch their account(s). This is especially beneficial if users tend to have multiple accounts.
- If a user must close the consent screen to switch accounts, send a recoverable error to Google so the user can sign in to the desired account with OAuth linking and the implicit flow.
Include your logo. Display your company logo on the consent screen. Use your style guidelines to place your logo. If you wish to also display Google's logo, see Logos and trademarks.

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
Para apoyar el flujo implícita OAuth 2.0, el servicio hace un punto final de autorización a disposición por HTTPS. Este punto final es responsable de la autenticación y la obtención del consentimiento de los usuarios para el acceso a los datos. El extremo de autorización presenta una IU de inicio de sesión para los usuarios que aún no han iniciado sesión y registra el consentimiento para el acceso solicitado.
Cuando una aplicación de Google necesita llamar a una de las API autorizadas de su servicio, Google utiliza este punto final para obtener permiso de sus usuarios para llamar a estas API en su nombre.
Una sesión típica de flujo implícito de OAuth 2.0 iniciada por Google tiene el siguiente flujo:
- Google abre su punto final de autorización en el navegador del usuario. El usuario inicia sesión, si aún no lo ha hecho, y le otorga permiso a Google para acceder a sus datos con su API, si aún no lo ha otorgado.
- Su servicio crea un token de acceso y vuelve a Google. Para hacerlo, redirija el navegador del usuario a Google con el token de acceso adjunto a la solicitud.
- Google llama a las API de su servicio y adjunta el token de acceso con cada solicitud. Su servicio verifica que el token de acceso otorgue a Google la autorización para acceder a la API y luego completa la llamada a la API.
Manejar solicitudes de autorización
Cuando una aplicación de Google necesita realizar la vinculación de cuentas a través de un flujo implícito de OAuth 2.0, Google envía al usuario a su punto final de autorización con una solicitud que incluye los siguientes parámetros:
Parámetros de punto final de autorización | |
---|---|
client_id | El ID de cliente que asignó a Google. |
redirect_uri | La URL a la que envía la respuesta a esta solicitud. |
state | Un valor contable que se devuelve a Google sin cambios en el URI de redireccionamiento. |
response_type | El tipo de valor que se devolverá en la respuesta. Para el flujo implícita OAuth 2.0, el tipo de respuesta es siempre token . |
user_locale | La configuración de idioma en la cuenta de Google RFC5646 formato utilizado para localizar su contenido en el idioma preferido del usuario. |
Por ejemplo, si su punto final de autorización está disponible en https://myservice.example.com/auth
, una solicitud puede tener un aspecto como el siguiente:
GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token&user_locale=LOCALE
Para que su punto final de autorización maneje las solicitudes de inicio de sesión, siga los siguientes pasos:
Verificar los
client_id
yredirect_uri
valores para evitar la concesión de acceso a las aplicaciones cliente no deseados o mal configurados:- Confirmar que el
client_id
coincide con el ID de cliente que ha asignado a Google. - Confirmar que la URL especificada por el
redirect_uri
parámetro tiene la siguiente forma:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
- Confirmar que el
Compruebe si el usuario ha iniciado sesión en su servicio. Si el usuario no ha iniciado sesión, complete el proceso de inicio de sesión o registro de su servicio.
Genere un token de acceso para que Google lo utilice para acceder a su API. El token de acceso puede ser cualquier valor de cadena, pero debe representar de forma única al usuario y al cliente para el que es el token y no debe ser adivinable.
Enviar una respuesta HTTP que redirige el navegador del usuario a la URL especificada por el
redirect_uri
parámetro. Incluya todos los siguientes parámetros en el fragmento de URL:-
access_token
: El token de acceso que acaba de generar -
token_type
: La cadenabearer
-
state
: El valor de estado no modificado de la solicitud original
El siguiente es un ejemplo de la URL resultante:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING
-
OAuth 2.0 manejador de redirección de Google recibe el token de acceso y confirma que el state
valor no ha cambiado. Una vez que Google ha obtenido un token de acceso para su servicio, Google adjunta el token a las llamadas posteriores a las API de su servicio.
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.