Guías

¿Qué es OAuth? «Iniciar sesión con Google» y acceso delegado explicado

OAuth es un estándar abierto que permite a un usuario dar a una app acceso limitado a su cuenta en otro servicio, sin entregarle su contraseña. Cuando haces clic en «Conectar Google Calendar» y ves una pantalla que pregunta «¿Permitir que esta app vea tus eventos?», eso es OAuth. La app recibe un token solo para lo que aprobaste, y puedes revocarlo en cualquier momento. La misma maquinaria, con una capa extra llamada OpenID Connect, impulsa «Iniciar sesión con Google» y botones similares.

Por qué importa OAuth al crear con IA

OAuth aparece en dos situaciones habituales al crear una app:

  1. Inicio de sesión social. Quieres que tus usuarios entren con «Iniciar sesión con Google» (o Apple, Microsoft, GitHub) en lugar de crear otra contraseña. Consulta cómo añadir inicio de sesión a tu app.
  2. Conectarse a las cuentas de los usuarios en otros servicios. Tu app necesita leer el calendario de un usuario, publicar en su red social, traer archivos de su nube o sincronizar sus datos de contabilidad.

En ambos casos, tu creador con IA puede escribir el código, pero hay pasos que solo tú puedes dar: crear una app de desarrollador con el proveedor, obtener un client ID y un client secret, registrar las URLs de callback y, para algunos permisos, pasar la revisión del proveedor. Entender cómo funciona OAuth hace que esos pasos, y los errores que producen, sean mucho menos misteriosos. Para la visión general del inicio de sesión, consulta qué es la autenticación.

Una analogía cotidiana

Piensa en la tarjeta de llave de un hotel. En el check-in, la recepción confirma quién eres y te da una tarjeta que abre tu habitación y el gimnasio, pero no las otras habitaciones ni las zonas del personal, y deja de funcionar al hacer el check-out. La tarjeta no contiene tu pasaporte. Si la pierdes, la recepción la cancela y te da otra.

  • La recepción es el servidor de autorización (la página de inicio de sesión de Google).
  • La comprobación de tu identidad es que tú inicies sesión en Google.
  • La tarjeta de llave es el token de acceso.
  • «Solo habitación y gimnasio» son los scopes que aprobaste.
  • El check-out es que el token caduque, o que tú reviques el acceso.

La app que usas nunca ve tu contraseña de Google, solo la tarjeta.

Cómo funciona OAuth, paso a paso

El flujo más habitual en las webs es el flujo de código de autorización. Esto es lo que ocurre cuando un usuario conecta su Google Calendar a una app de citas:

  1. Clic. El usuario hace clic en «Conectar Google Calendar».
  2. Redirección al proveedor. La app envía el navegador a Google con su client ID, los scopes que quiere (leer eventos del calendario) y la redirect URI a la que Google debe devolver al usuario.
  3. Inicio de sesión y consentimiento. El usuario inicia sesión en Google (si no lo ha hecho ya) y ve una pantalla de consentimiento que enumera lo que pide la app. Hace clic en Permitir.
  4. Vuelta con un código. Google redirige el navegador a la redirect URI de la app con un código de autorización de corta duración y de un solo uso.
  5. Intercambio en el servidor. El servidor de la app envía ese código, junto con su client secret, directamente a Google y recibe un token de acceso (y a menudo un token de refresco).
  6. Uso de la API. El servidor llama a la API de Google Calendar con el token de acceso y obtiene los eventos del usuario.

La callback del paso 4 tiene un aspecto parecido a este:

https://tuapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9

Y la respuesta con el token del paso 5 es JSON como este:

{
  "access_token": "ya29.a0Af...",
  "expires_in": 3599,
  "refresh_token": "1//0gL...",
  "scope": "https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

El punto de diseño importante: el intercambio del token se hace de servidor a servidor, así que el client secret y los tokens nunca necesitan pasar por el navegador.

OAuth frente a OpenID Connect frente a tu propio inicio de sesión

A qué respondeEjemplo
OAuth 2.0«¿Qué puede hacer esta app en nombre del usuario?» (autorización)Leer el calendario de un usuario
OpenID Connect (OIDC)«¿Quién es este usuario?» (autenticación), construido sobre OAuth«Iniciar sesión con Google» devuelve un correo verificado
Tu propio inicio de sesión«¿Es esta la contraseña correcta de esta cuenta?»Email y contraseña guardados (con hash) en tu base de datos

Muchas apps combinan los tres: inicio de sesión con email y contraseña, más «Iniciar sesión con Google» vía OIDC, más conexiones OAuth separadas con otros servicios.

Términos clave

TérminoSignificado
Proveedor / servidor de autorizaciónEl servicio en el que el usuario inicia sesión y concede acceso: Google, Microsoft, GitHub.
ClienteTu app, tal como está registrada en el proveedor.
Client IDEl identificador público de tu app en el proveedor.
Client secretLa contraseña privada de tu app con el proveedor. Solo en el servidor.
ScopeUn permiso concreto, como «leer el calendario» o «ver la dirección de correo».
Pantalla de consentimientoLa página donde el usuario ve y aprueba los scopes pedidos.
Redirect URI / URL de callbackAdonde el proveedor devuelve al usuario. Debe registrarse de antemano y coincidir exactamente.
Token de accesoCredencial de corta duración para llamar a la API.
Token de refrescoCredencial de mayor duración para obtener nuevos tokens de acceso. Guárdala como una contraseña.
ID tokenEn OIDC, un token firmado que describe quién es el usuario.
PKCEUna comprobación extra («clave de prueba») que impide usar códigos interceptados. Recomendada para todos los clientes.
stateUn valor aleatorio que protege el flujo frente a peticiones falsificadas.

Malentendidos habituales

  • «OAuth es un sistema de inicio de sesión». OAuth puro concede acceso; OpenID Connect se encarga de la identidad. Usar un token de acceso sin más como prueba de quién es alguien ha provocado fallos de seguridad reales.
  • «La app recibe mi contraseña». Nunca la recibe. Ese es precisamente el objetivo.
  • «Pedir más scopes no tiene riesgo». Los usuarios desconfían de las peticiones amplias, y proveedores como Google pueden exigir una revisión de la app para scopes sensibles o restringidos. Pide solo lo que necesitas.
  • «El client secret puede ir en el frontend». Todo lo que está en el código del navegador es público. Guárdalo en secretos del lado del servidor.
  • «Si funciona en pruebas, funcionará en producción». Los proveedores suelen limitar las apps no verificadas, por ejemplo a usuarios de prueba listados, y la redirect URI de tu dominio en vivo debe registrarse por separado.
  • «Los tokens duran para siempre». Los tokens de acceso caducan rápido, y los usuarios pueden revocar el acceso. Tu app tiene que gestionar ambas cosas con elegancia.

Qué pedir a tu creador de apps con IA

  • «Añade “Iniciar sesión con Google” usando OpenID Connect con una biblioteca de autenticación bien mantenida; no escribas el flujo de OAuth a mano.»
  • «Usa el flujo de código de autorización con PKCE y comprueba el parámetro state.»
  • «Lee el client ID y el client secret de variables de entorno en el servidor.»
  • «Pide solo los scopes que necesitamos: acceso de solo lectura al calendario.»
  • «Dime todas las URLs de redirección que tengo que registrar en la consola del proveedor, para la vista previa, la URL publicada y mi dominio propio.»
  • «Guarda los tokens de refresco cifrados en la base de datos, y cuando un token caduque o se revoque, pide al usuario que vuelva a conectarse.»
  • «Permite que los usuarios desconecten la integración desde su página de ajustes.»

OAuth y Mythex

Mythex no tiene inicio de sesión integrado para los usuarios finales de las apps que creas; su documentación describe un enfoque de traer tu propio sistema: eliges una biblioteca de autenticación o un proveedor alojado, guardas sus claves como secretos del proyecto, y el agente escribe el código. La receta para añadir autenticación tiene un mensaje inicial para esto. También te encontrarás OAuth en el propio Mythex: puedes registrarte con Google, conectar GitHub para sincronizar repositorios usa OAuth de GitHub, y los asistentes de IA que se conectan a Mythex por MCP pasan por una página de consentimiento OAuth. Para más información, consulta qué es la autenticación y qué es la autenticación de dos factores.

Preguntas

¿Qué es OAuth en términos sencillos?

OAuth es un estándar para que un usuario permita que una app acceda a su cuenta en otro servicio (por ejemplo, que una app de citas lea su Google Calendar) sin darle su contraseña. El usuario aprueba permisos concretos, y la app recibe un token que solo sirve para esos permisos.

¿OAuth es lo mismo que «Iniciar sesión con Google»?

«Iniciar sesión con Google» se basa en OAuth 2.0 más OpenID Connect, una capa por encima de OAuth que añade una forma estándar de decir a la app quién es el usuario. OAuth por sí solo trata de conceder acceso; OpenID Connect es lo que lo convierte en un inicio de sesión.

¿Qué es un token de acceso de OAuth?

Un token de acceso es una credencial que la app envía a la API de un servicio para demostrar que tiene permiso de acceso. Suele ser de corta duración y se limita a los permisos (scopes) que aprobó el usuario. Un token de refresco, si se emite, permite a la app obtener nuevos tokens de acceso sin volver a pedir permiso al usuario.

¿Qué significa redirect_uri_mismatch?

Significa que la URL de callback que tu app envió durante el inicio de sesión no coincide exactamente con ninguna registrada en la consola de desarrolladores del proveedor. Añade la URL exacta, incluyendo https, dominio, ruta y cualquier barra final, para cada dirección en la que se ejecute tu app.

¿OAuth es seguro?

OAuth 2.0 se usa ampliamente y es seguro si se implementa bien: con el flujo de código de autorización con PKCE, URLs de redirección exactas, el parámetro state, y manteniendo el client secret y los tokens en el servidor. La mayoría de los problemas vienen de atajos en la implementación, por eso se recomienda usar una biblioteca bien mantenida.

Mythex · Pricing · Crea lo que quieras con IA · Plantillas de sitios web y apps · Mythex comparado · Glosario de creación de apps con IA · Herramientas gratuitas para crear apps con IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)