JL
TH
หน้าเอกสาร
เมนู
คู่มือ

ช่องทางส่วนตัวและการเข้าถึง

บังคับกฎการเข้าถึงตามบัญชีสำหรับการอ่านและเขียนในช่องทางส่วนตัว

guide jsonlog

ช่องทางส่วนตัวและการเข้าถึง

วัตถุประสงค์: กำหนดความเป็นเจ้าของช่องทางส่วนตัวและพฤติกรรมการอนุญาต

เงื่อนไขก่อนเริ่ม

  • มี Bearer token ของบัญชีที่ถูกต้องอย่างน้อย 1 รายการ
  • ใช้ channel ID ให้สอดคล้องกันระหว่างไคลเอนต์เขียน/อ่าน

ลำดับงาน API/Script

  1. ยืนยันความเป็นเจ้าของช่องทาง:
    • การเขียนแบบยืนยันตัวตนครั้งแรกไปที่ POST /log?cid=<id> บนช่องทางที่ยังไม่มีเจ้าของ จะตั้งบัญชีเจ้าของให้ช่องทาง
  2. อ่านในฐานะเจ้าของ:
    • GET /log?cid=<id> พร้อม token ของเจ้าของ จะคืน log ของช่องทาง
  3. บังคับสิทธิ์ผู้ที่ไม่ใช่เจ้าของ:
    • การอ่าน/เขียนด้วยบัญชีไม่ตรงกันจะได้ 404
  4. บังคับสิทธิ์เมื่อไม่ยืนยันตัวตน:
    • การเขียนช่องทางส่วนตัวโดยไม่มี token จะได้ 401
    • การอ่านช่องทางส่วนตัวโดยไม่มี token จะได้ 404
  5. การเข้าถึงช่องทางส่วนตัวผ่าน WebSocket:
    • การ upgrade ไป /ws?cid=<id> ต้องใช้ token ที่ถูกต้องของเจ้าของ

ลำดับงาน 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
  • การเขียนช่องทางส่วนตัวโดยไม่มี token จะได้ 401

เอกสารที่เกี่ยวข้อง