(Nautilus · Inicio de sesión con Telegram)

Deja que tus clientes inicien sesión con Telegram Sin contraseña, sin factura de SMS, sin dominio que registrar

Tus clientes tocan Start en tu bot de Telegram y ya están dentro: sin contraseña que guardar, sin correo que entregar. Conectas tu propio bot desde el panel y llamas a dos endpoints HTTP; Nautilus se encarga del lado del bot y te entrega un token de acceso y el perfil de Telegram.

curl -X POST https://api.vernesoft.com/v1/passepartout/login/start \
  -H "Authorization: Bearer vrn_passepartout_•••"
# => { "nonce": "n_9f2c…", "deep_link": "https://t.me/your_bot?start=n_9f2c…" }

(Por qué no contraseñas)

Las contraseñas cuestan tiempo de soporte, los códigos SMS cuestan dinero

Las contraseñas traen flujos de restablecimiento, correos de verificación y los tickets de soporte que los siguen. Los códigos SMS cambian eso por una factura por mensaje. Si tus clientes ya están en Telegram, hay una tercera vía, y no cuesta ninguna de las dos cosas.

Inicio de sesión con contraseña o SMS

  • ✕ Almacenamiento de contraseñas y flujos de restablecimiento que tienes que proteger y mantener.
  • ✕ Correos de verificación que llegan tarde o acaban en spam, y eso bloquea los registros.
  • ✕ Códigos SMS de un solo uso facturados por mensaje, en cada país, mientras los uses.
  • ✕ Tokens de bots de Telegram, si lo montas tú mismo, repartidos entre archivos de configuración y de entorno.

Inicio de sesión con Telegram

  • ✓ Sin contraseña que guardar, filtrar o restablecer.
  • ✓ Un toque en un deep link: sin ida y vuelta por correo, sin código que teclear.
  • ✓ Usuarios guardados por cuenta en Ory Kratos, separados de los usuarios de otras cuentas.
  • ✓ Tokens de bot cifrados en reposo con AES-256-GCM.

(El widget de login)

Hasta dónde llega el widget de login de Telegram

El botón de login de Telegram era un widget en iframe, y las propias páginas de Telegram ahora lo llaman heredado y documentan en su lugar un login con OpenID Connect. Si usas el widget, estos son los cinco puntos donde se queda corto. Este inicio de sesión toma otra ruta: el usuario acaba en tu bot, no en una página que Telegram dibuja por ti.

(01)

Vinculación de dominio

Widget de login de Telegram (heredado)

Atado al único dominio que fijas con /setdomain en BotFather. Un entorno de staging suele necesitar un segundo bot, y el origen equivocado falla con «Bot domain invalid».

Inicio de sesión con Telegram

Ningún dominio que registrar. El mismo bot sirve a producción, staging y cada máquina de desarrollo.

(02)

Desarrollo local

Widget de login de Telegram (heredado)

En la práctica no funciona en localhost, así que el inicio de sesión que publicas no es el que probaste.

Inicio de sesión con Telegram

Al flujo por deep link le da igual dónde corra tu app. Las mismas dos llamadas funcionan en local y en producción; el usuario toca Start en tu bot en ambos casos.

(03)

Sesiones y cierre de sesión

Widget de login de Telegram (heredado)

Devuelve una carga firmada y ahí se acaba. No hay sesión que caduque ni nada de lo que cerrar sesión.

Inicio de sesión con Telegram

Devuelve un token de acceso que caduca al cabo de una hora, y un endpoint para introspeccionarlo. No hay llamada de cierre de sesión, así que un token termina al caducar.

(04)

El botón

Widget de login de Telegram (heredado)

Un iframe que configuras en lugar de un marcado que controlas: tamaño del botón, radio de las esquinas y si se muestra la foto, con el estilo propio de Telegram.

Inicio de sesión con Telegram

Pintas tu propio botón, porque el flujo son dos llamadas HTTP y un enlace. Se ve como el resto de tu sistema de diseño.

(05)

Verificación de firma

Widget de login de Telegram (heredado)

Construyes la cadena de comprobación y verificas el HMAC tú mismo, correctamente, en cada backend que acepte un login.

Inicio de sesión con Telegram

Lo resolvemos de nuestro lado: el bot recibe el toque directamente de Telegram, así que no hay carga firmada que verificar. Tu backend introspecciona un único token.

(Características principales)

Lo que obtienes con el inicio de sesión con Telegram

(01)

Un toque, sin contraseña

Tus clientes inician sesión con un toque en Start en tu bot. Sin contraseña que guardar, sin flujo de correo que mantener. Telegram no te da una dirección de correo, así que pídela después del inicio de sesión si la necesitas.

(02)

Usuarios separados por cuenta

Los usuarios de Telegram de cada cuenta viven en su propio espacio de nombres en Ory Kratos, separados de los usuarios de otras cuentas. La misma persona que inicia sesión en dos cuentas obtiene dos identidades distintas.

(03)

Trae tu propio bot

Crea un bot con @BotFather, pega su token en el panel y actívalo. Sin webhook público, y ningún servidor tuyo tiene que ser accesible desde Telegram.

(04)

Dos llamadas HTTP

Inicia un login para obtener un nonce y un enlace t.me. El usuario toca Start en tu bot y consultas el estado hasta que devuelve un token de acceso y el id, el nombre de usuario, el nombre y la foto de Telegram. El nonce vale cinco minutos.

(05)

Tokens de bot cifrados en reposo

Los tokens de bot de @BotFather se cifran con AES-256-GCM. Nautilus lee las actualizaciones de tu bot mediante long polling a Telegram, así que nunca expones un webhook. Un token permite a quien lo tiene actuar como el bot; si el tuyo hace otras tareas, crea un bot aparte para el inicio de sesión.

(06)

SDK para cuatro lenguajes

Los SDK oficiales de Node, PHP, Python y Rust tienen un recurso passepartout, así que cada una de las dos llamadas es una línea.

(Un solo producto)

Telegram es una forma de entrar, no todo el inicio de sesión

El inicio de sesión con Telegram vive en la misma cuenta de Nautilus que todo lo demás: el mismo panel, el mismo plan, una clave de API limitada a él. Es una forma más de iniciar sesión. Correo y contraseña, Google, GitHub y ocho proveedores más pasan por la API de inicio de sesión de esa cuenta. Un inicio de sesión con Telegram es un usuario propio: Nautilus no lo fusiona con una cuenta de correo o social de la misma persona.

Ver inicio de sesión y usuarios
El usuario toca Start en tu botNautilus inicia su sesiónTu app recibe un token de acceso

(Experiencia de desarrollador)

Añade el inicio de sesión con Telegram con dos llamadas

Inicia un login, envía al usuario al enlace, consulta hasta que termine, en cualquier lenguaje. Comprueba el token que recibes con una llamada de introspección.

# 1. Start a login — returns a nonce and a Telegram deep link
curl -X POST https://api.vernesoft.com/v1/passepartout/login/start \
  -H "Authorization: Bearer $VERNE_PASSEPARTOUT_KEY" \
  -H "Content-Type: application/json"
# => { "nonce": "n_9f2c…", "deep_link": "https://t.me/your_bot?start=n_9f2c…" }

# 2. Poll for status until the user taps Start in your bot
curl "https://api.vernesoft.com/v1/passepartout/login/status?nonce=n_9f2c…" \
  -H "Authorization: Bearer $VERNE_PASSEPARTOUT_KEY"
# => { "status": "completed", "access_token": "…", "user": { "id": "…" } }

(FAQ)

Preguntas frecuentes

¿Cómo funciona el flujo de login con Telegram?

Tu backend llama a POST /v1/passepartout/login/start y recibe un nonce y un enlace t.me. El usuario abre el enlace y toca Start en tu bot. Después tu backend consulta GET /v1/passepartout/login/status con el nonce hasta que devuelve un estado completado con un token de acceso y el perfil de Telegram del usuario.

¿Necesito ejecutar un webhook público para el bot de Telegram?

No. Nautilus lee las actualizaciones de tu bot mediante long polling a Telegram, así que no hay ningún webhook que exponer ni proteger. Solo añades en el panel el token del bot que te da @BotFather.

¿Cómo se mantienen mis usuarios separados de los de otras cuentas?

Los usuarios de Telegram tienen un espacio de nombres por cuenta en el almacén compartido de Ory Kratos, y cada cuenta conecta su propio bot. Los tokens de bot se cifran en reposo con AES-256-GCM.

¿En qué se diferencia del Telegram Login Widget?

El widget en iframe de Telegram, que sus propias páginas ahora llaman heredado, está atado a un dominio que fijas en BotFather, no tiene sesión ni cierre de sesión y deja la comprobación HMAC a tu código. Esto es en cambio un flujo por deep link: funciona desde cualquier origen, nosotros hacemos la validación y recibes un token de acceso con caducidad. El login más reciente de Telegram con OpenID Connect elimina la regla del dominio único y no cuesta nada; lleva a los usuarios a la página de Telegram, mientras que aquí se quedan en tu bot. Elige lo que encaje con tu flujo.

¿Funciona en localhost?

Sí. No hay dominio que registrar, así que el mismo flujo funciona en desarrollo local y en producción, y el usuario toca Start en tu bot en ambos casos.

¿Se paga por mensaje, como los códigos por SMS?

No se factura nada por mensaje, porque la entrega va por Telegram. Un inicio de sesión cuesta una o dos solicitudes —iniciarlo y, si lo haces, verificar el token—, tarde lo que tarde la persona en pulsar Start: consultar el resultado es gratis. El uso se mide en solicitudes de API: el plan gratuito incluye 3.000 al mes, Starter cuesta 19 € por 50.000 y Pro 79 € por 300.000. La página de precios tiene la lista actual.

(Empieza hoy)

Dale a tus clientes un inicio de sesión con Telegram

Sin contraseña que guardar, sin correo que entregar. Conecta un bot, crea una clave y las primeras 3.000 solicitudes de cada mes son gratis.

Lo que cuesta el sin contraseña

El sin contraseña tiene una lista de precios, y solo se ve clara en producción. Los códigos de un solo uso por SMS se cobran por mensaje, en todos los países, para siempre — y las rutas más caras suelen atender a los clientes menos rentables. Los magic links trasladan el coste al correo: un proveedor transaccional, un dominio calentado y los registros que pierdes en una carpeta de spam que no puedes inspeccionar.

La entrega por Telegram no tiene ninguno de esos dos costes. Llega a una app que el usuario ya tiene abierta, no hay un cargo por mensaje que trasladar y no hay reputación de dominio que mantener. Lo que cuesta en su lugar es alcance: tus usuarios tienen que estar en Telegram, una limitación real y la razón honesta de que este sea un método de inicio de sesión y no el único.

Así que la cuenta es corta. Donde tu público ya está en Telegram, no tienes factura por mensaje ni entregabilidad de correo de la que ocuparte; donde no lo está, la API de inicio de sesión cubre correo, contraseña y diez proveedores de inicio de sesión en la misma cuenta. Un token de bot de @BotFather es toda la configuración, y las primeras 3.000 solicitudes de cada mes son gratis.