JL
ZH-TW
文件首頁
選單
指南

私有頻道與存取控制

對私有頻道讀寫套用帳戶綁定的存取規則。

guide jsonlog

私有頻道與存取控制

目的:定義私有頻道所有權與授權行為。

前置條件

  • 至少具備一組有效帳戶 Bearer 權杖。
  • 在寫入與讀取客戶端間維持一致的頻道 ID。

API/Script 流程

  1. 宣告頻道所有權:
    • 對尚未歸屬的頻道首次做認證寫入 POST /log?cid=<id>,會設定頻道擁有帳戶。
  2. 以擁有者身分讀取:
    • 使用擁有者權杖呼叫 GET /log?cid=<id> 可取得頻道日誌。
  3. 非擁有者存取控制:
    • 帳戶不相符的讀寫會回傳 404
  4. 未驗證存取控制:
    • 私有頻道無權杖寫入回傳 401
    • 私有頻道無權杖讀取回傳 404
  5. 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

相關文件