Skip to main content

Firmar el JWT

El contrato es el mismo en todas partes: lee la sesion de tu usuario y firma un JWT nuevo (HS256) con tu signing key y el email del visitante. Empieza por tu lenguaje y luego mira tu proveedor de auth para saber como leer al usuario.
Firma siempre en el servidor. La signing key nunca va en codigo de frontend ni en un repositorio publico.

Deja que tu IA lo anada

La mayoria de equipos montan esto con un asistente de IA. Copia el prompt de abajo en el tuyo (Cursor, Claude Code, Copilot y similares). Primero revisa tu stack, pregunta si algo no esta claro, y luego escribe el codigo de firma por ti.
Prompt para tu asistente de IA
La signing key se crea en los ajustes de tu widget (Security / Identity Verification). Pegala como el secreto BESTCHATBOT_SIGNING_KEY cuando tu asistente te lo pida.
Prefieres hacerlo a mano? Abajo tienes el codigo exacto por lenguaje y proveedor.

Cualquier backend

Obligatorio: email (en minusculas) y exp. Recomendado: name. La signing key sale de un secreto del backend (BESTCHATBOT_SIGNING_KEY).
Despues entrega token al widget con setUserToken(token) o el atributo data-user-token. Mira Identidad del visitante.

Por proveedor de auth

Cada proveedor solo cambia en como lees al usuario identificado. Una vez tienes el email, firma el token con uno de los snippets de arriba.
Lo mas facil: instala el plugin de BestChatBot, pega tu signing key en sus ajustes y el plugin inyecta el widget y genera el token por ti (incluye email y telefono de WooCommerce). Sin codigo.Para hacerlo a mano, firma en el footer para usuarios con sesion:
Los tokens inline pueden quedar en cache de pagina. El plugin lo evita pidiendo el token por una peticion no cacheada. En sitios con cache, prefiere el plugin.
Lee el usuario de Clerk en el servidor y luego firma tu propio token.
No reenvies el token de sesion de Clerk. Genera un JWT nuevo firmado con tu signing key de BestChatBot.
Verifica primero el Firebase ID token y luego firma.
El frontend manda el Firebase ID token a tu endpoint; tu endpoint devuelve el JWT de BestChatBot.
Lee el usuario con getUser() (no getSession()) y luego firma.
No reenvies el access token de Supabase. Firma un JWT aparte con tu signing key.
Lee la sesion de Auth0 en el servidor y luego firma.

Siguientes pasos

Identidad del visitante

El contrato, las reglas de seguridad y como entregar el token.

Miembros y roles

Controla quien de tu equipo puede gestionar el widget.