Archivos generados por la validación de LiveKit Contenido: - token.txt: token JWT completo (línea única) - payload.json: payload (claims) decodificado del token - curl_strict.txt: resultado del curl estricto a /rtc/validate (HTTP 200 + body: success) Comandos listos para usar (zsh) # exportar token export TOKEN='eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdF91c2VyIiwidmlkZW8iOnsicm9vbSI6InRlc3Rfcm9vbSIsInJvb21Kb2luIjp0cnVlLCJjYW5QdWJsaXNoIjp0cnVlLCJjYW5TdWJzY3JpYmUiOnRydWV9LCJpc3MiOiJBUElCVHFUR3hmOWh0TUsiLCJleHAiOjE3NjM3OTg3MjgsIm5iZiI6MCwic3ViIjoidGVzdF91c2VyIn0.gyu2VR1jAFlbrbJIpsAeocrUSHTWWszED7KfM3lAwZU' # validar con curl (estricto TLS) curl -i -v -H "Authorization: Bearer $TOKEN" "https://livekit-server.bfzqqk.easypanel.host/rtc/validate" # validar (ignorar verificación TLS) - solo para diagnóstico echo "(no recomendado en producción)" curl -i -v -k -H "Authorization: Bearer $TOKEN" "https://livekit-server.bfzqqk.easypanel.host/rtc/validate" # probar WebSocket con wscat (instalar: npm i -g wscat) # timeout 6s wscat -c "wss://livekit-server.bfzqqk.easypanel.host/rtc?access_token=$TOKEN" || true # ejemplo cliente JS (browser) - usar livekit-client # import { connect } from 'livekit-client'; # const serverUrl = 'wss://livekit-server.bfzqqk.easypanel.host'; # const token = '...el token completo...'; # (async () => { const room = await connect(serverUrl, token); console.log('Conectado a room:', room.name); })(); Recomendaciones de seguridad: - No subir tokens ni secretos a repositorios públicos. - Generar tokens en backend y entregar tokens cortos al cliente. - Usar TTL corto en producción (10-30 min) y permisos mínimos por rol. - Guardar LIVEKIT_API_SECRET en un gestor de secretos.