Canaux Privés Et Accès
Objectif : définir la propriété des canaux privés et le comportement d’autorisation.
Préconditions
- Disposer d’au moins un token Bearer de compte valide.
- Utiliser des IDs de canal cohérents entre clients writer/reader.
Flux API/Script
- Revendiquer la propriété d’un canal :
- La première écriture authentifiée sur
POST /log?cid=<id>pour un canal non possédé définit le compte propriétaire.
- La première écriture authentifiée sur
- Lire en tant que propriétaire :
GET /log?cid=<id>avec token propriétaire renvoie les logs du canal.
- Appliquer l’accès non-propriétaire :
- Les lectures/écritures d’un autre compte renvoient
404.
- Les lectures/écritures d’un autre compte renvoient
- Appliquer l’accès non authentifié :
- Les écritures privées sans token renvoient
401. - Les lectures privées sans token renvoient
404.
- Les écritures privées sans token renvoient
- Accès privé WebSocket :
- L’upgrade vers
/ws?cid=<id>exige un token propriétaire valide.
- L’upgrade vers
Flux HTTP/curl
JSONLOG_BASE_URL="http://localhost:3002"
OWNER_TOKEN="<owner_account_token>"
OTHER_TOKEN="<other_account_token>"
CID="team-private"
# Le propriétaire revendique/utilise le 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 non-propriétaire ne peut pas lire le canal privé
curl -sS "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OTHER_TOKEN}"
# Écriture non authentifiée bloquée
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "content-type: application/json" \
--data '{"message":"blocked"}'
Validation
- Lecture/écriture propriétaire : succès
200. - Opérations de canal privé non-propriétaire :
404. - Absence de token sur écriture privée :
401.