Canales Privados Y Acceso
Objetivo: definir propiedad y comportamiento de autorización en canales privados.
Precondiciones
- Ten al menos un token Bearer de cuenta válido.
- Usa IDs de canal consistentes entre clientes escritores y lectores.
Flujo De API/Script
- Reclamar propiedad del canal:
- La primera escritura autenticada a
POST /log?cid=<id>en un canal sin dueño fija la cuenta propietaria.
- La primera escritura autenticada a
- Leer como propietario:
GET /log?cid=<id>con token propietario devuelve logs del canal.
- Aplicar acceso para no propietarios:
- Lecturas/escrituras de cuentas incorrectas devuelven
404.
- Lecturas/escrituras de cuentas incorrectas devuelven
- Aplicar acceso sin autenticación:
- Escrituras privadas sin token devuelven
401. - Lecturas privadas sin token devuelven
404.
- Escrituras privadas sin token devuelven
- Acceso privado por WebSocket:
- El upgrade a
/ws?cid=<id>requiere token válido de la cuenta propietaria.
- El upgrade a
Flujo HTTP/curl
JSONLOG_BASE_URL="http://localhost:3002"
OWNER_TOKEN="<owner_account_token>"
OTHER_TOKEN="<other_account_token>"
CID="team-private"
# El propietario reclama/usa el canal
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OWNER_TOKEN}" \
-H "content-type: application/json" \
--data '{"message":"owner log"}'
# Un no propietario no puede leer canal privado
curl -sS "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OTHER_TOKEN}"
# Escritura sin autenticación bloqueada
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "content-type: application/json" \
--data '{"message":"blocked"}'
Validación
- Lectura/escritura del propietario exitosa con
200. - Operaciones privadas de no propietario devuelven
404. - Falta de token en escritura privada devuelve
401.