私有频道与访问控制
目的:定义私有频道所有权与授权行为。
前置条件
- 至少准备一个有效的账户 Bearer 令牌。
- 在写入端与读取端客户端之间保持一致的频道 ID。
API/脚本流程
- 声明频道所有权:
- 对未归属频道首次使用认证写入
POST /log?cid=<id>,会设置该频道的所属账户。
- 对未归属频道首次使用认证写入
- 以所有者身份读取:
- 使用所有者令牌调用
GET /log?cid=<id>返回该频道日志。
- 使用所有者令牌调用
- 非所有者访问控制:
- 错误账户的读写返回
404。
- 错误账户的读写返回
- 未认证访问控制:
- 无令牌写入私有频道返回
401。 - 无令牌读取私有频道返回
404。
- 无令牌写入私有频道返回
- WebSocket 私有访问:
- 升级到
/ws?cid=<id>需要有效的所有者令牌。
- 升级到
HTTP/curl 流程
JSONLOG_BASE_URL="http://localhost:3002"
OWNER_TOKEN="<owner_account_token>"
OTHER_TOKEN="<other_account_token>"
CID="team-private"
# 所有者声明/使用频道
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OWNER_TOKEN}" \
-H "content-type: application/json" \
--data '{"message":"owner log"}'
# 非所有者无法读取私有频道
curl -sS "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OTHER_TOKEN}"
# 未认证写入被拦截
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "content-type: application/json" \
--data '{"message":"blocked"}'
校验
- 所有者读写成功返回
200。 - 非所有者私有频道操作返回
404。 - 私有频道写入缺少令牌返回
401。