Error de autenticación de cuenta

Título: n8n self-hosted + Gmail OAuth devuelve Error: Unauthorized después del callback de Google
Hola. Necesito ayuda con una instalación self-hosted de n8n porque llevo varios días intentando conectar Gmail mediante OAuth y no logro completar la autorización.

Entorno

  • n8n self-hosted en VPS de HostGator
  • n8n versión: 2.35.3
  • Docker Compose
  • Traefik como reverse proxy
  • PostgreSQL
  • Redis
  • Dominio público: https://n8n.creativenfc.com
  • SSL/HTTPS funcionando
  • Gmail API habilitada en Google Cloud
  • OAuth Client tipo Web Application creado
  • Mi cuenta de Gmail agregada como Test User

Configuración pública de n8n

Actualmente tengo:

N8N_HOST=n8n.creativenfc.com
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.creativenfc.com/
N8N_EDITOR_BASE_URL=https://n8n.creativenfc.com/
N8N_PROXY_HOPS=1

Originalmente N8N_PROTOCOL estaba configurado como http, pero ya lo cambié a https y recreé el contenedor.
Verifiqué dentro del contenedor:

docker exec n8n-main printenv N8N_PROTOCOL

y devuelve:

https

Los contenedores están funcionando correctamente:

  • n8n-main
  • n8n-main-worker
  • traefik
  • postgres
  • redis

Problema con Gmail OAuth

Creo una credencial Gmail OAuth2 dentro de n8n e ingreso correctamente:

  • Client ID
  • Client Secret
    Después presiono:
    Connect my account
    Google abre correctamente la autorización.
    Inicio sesión con mi cuenta de Gmail, acepto los permisos y Google me redirige correctamente a:
https://n8n.creativenfc.com/rest/oauth2-credential/callback

Pero en ese momento n8n muestra:

Error: Unauthorized

Por lo tanto, la credencial nunca obtiene el access token.
Si intento utilizar el nodo Gmail posteriormente aparece:

Unable to sign without access token

Otro dato que puede ser importante

Si entro a n8n directamente mediante:

https://n8n.creativenfc.com

me aparece la pantalla de login de n8n.
Actualmente no recuerdo la contraseña interna de n8n y la recuperación por email no funciona porque SMTP no está configurado.
Sin embargo, desde el panel de HostGator existe un acceso que me permite entrar directamente a n8n y allí aparezco autenticado como Owner.
Por eso sospecho que puede haber algún problema relacionado con la sesión/cookie de autenticación cuando Google vuelve al callback de OAuth.

Google Safe Browsing

También tuve una advertencia roja de Chrome sobre el subdominio.
Registré creativenfc.com en Google Search Console mediante DNS TXT.
Search Console mostró:

  • Deceptive pages
  • Possible phishing detected on user login
    No proporciona Sample URLs.
    Ya solicité una revisión porque n8n.creativenfc.com es una instancia privada y legítima de n8n.
    No sé si esto está relacionado directamente con OAuth o si es un problema independiente.

Lo que necesito saber

¿Alguien puede indicarme qué debería revisar específicamente para solucionar el:

Error: Unauthorized

cuando Google vuelve a:

/rest/oauth2-credential/callback

?
Especialmente me interesa saber si podría estar relacionado con:

  • la cookie/sesión n8n-auth;
  • Traefik o headers del reverse proxy;
  • el hecho de entrar a n8n desde el panel del proveedor;
  • alguna variable de entorno adicional;
  • configuración de OAuth en n8n 2.x.
    Preferiría no reinstalar n8n ni borrar workflows/configuración si existe una forma de diagnosticar primero la causa concreta.
    Gracias.

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

¡Hola @Brandon_Gutierrez Bienvenido!
n8n 2.0 cambió el valor por defecto de N8N_SKIP_AUTH_ON_OAUTH_CALLBACK de true a false, por lo que en 2.35.3 el endpoint de callback requiere una sesión de n8n autenticada en el mismo navegador al que Google redirige. Acceder al editor a través del panel de HostGator en lugar de iniciar sesión en tu dominio no deja ninguna cookie n8n-auth en n8n.creativenfc.com, por lo que req.user es undefined en el callback y devuelve un simple “Unauthorized” sin línea de registro. Establece esto en el contenedor n8n-main y recréalo:

N8N_SKIP_AUTH_ON_OAUTH_CALLBACK=true

Luego crea la credencial de Gmail nuevamente. Traefik, N8N_PROXY_HOPS y la bandera de Safe Browsing son independientes de esto.
Ver esto:

Hola, esto parece menos un problema de configuración de OAuth de Gmail y más un problema de sesión/autenticación de n8n que ocurre cuando Google regresa a la devolución de llamada.

Yo lo diagnosticaría antes de cambiar o reinstalar cualquier cosa. Lo primero que verificaría son la cookie n8n-auth en la solicitud de devolución de llamada, el comportamiento de cookies SameSite/Secure, los encabezados HTTPS reenviados de Traefik y los registros de n8n durante el intento de OAuth exacto.

También probaría el flujo mientras accedo a n8n directamente a través de https://n8n.creativenfc.com en lugar del acceso del panel de control de HostGator, ya que eso podría ser relevante para cómo se establece la sesión.

¿Podrías compartir:

  1. Los registros de n8n generados durante un intento fallido de OAuth (docker logs alrededor de la devolución de llamada)

  2. Tu configuración/etiquetas de Traefik con secretos removidos

  3. Una captura de pantalla de la solicitud de red del navegador a /rest/oauth2-credential/callback mostrando los encabezados de solicitud/respuesta (oculta cookies/tokens)

  4. Si la cookie n8n-auth está presente en esa solicitud de devolución de llamada

Con eso, puedo reducir si el fallo proviene de la sesión del navegador, el proxy inverso, la autenticación de n8n o el manejo del estado de OAuth en lugar de adivinar.

hola comparto a veces tu problema, generalmente las apliaciones que crees de google por defecto tiene fecha de vencimiento, trata de crear una nueva aplicacion para resolver tu problema

Tengo un problema similar con OAuth a través de Azure.
Con la variable de entorno N8N_SKIP_AUTH_ON_OAUTH_CALLBACK ahora puedo establecer la conexión.

La cookie n8n-auth estaba presente en mi caso, pero fue bloqueada según la consola de desarrollo porque SameSite está configurado en strict, aunque haya establecido N8N_SAMESITE_COOKIE="lax" o también "none".

La entrada en el registro de n8n fue simplemente:
2026-09-03T06:08:29.911Z | error | OAuth2 callback failed {"error":{"name":"ResponseError","message":"Unauthorized","stack":"ResponseError: Unauthorized\n at OauthService.decodeCsrfState (/usr/local/lib/node_modules/n8n/src/oauth/oauth.service.ts:553:10)\n at OauthService.resolveCredential (/usr/local/lib/node_modules/n8n/src/oauth/oauth.service.ts:591:31)\n at OAuth2CredentialController.handleCallback (/usr/local/lib/node_modules/n8n/src/controllers/oauth/oauth2-credential.controller.ts:53:5)\n at handler (/usr/local/lib/node_modules/n8n/src/controller.registry.ts:116:12)\n at /usr/local/lib/node_modules/n8n/src/controller.registry.ts:126:8"},"file":"oauth2-credential.controller.js","function":"handleCallback"}