ช่องทางส่วนตัวและการเข้าถึง
วัตถุประสงค์: กำหนดความเป็นเจ้าของช่องทางส่วนตัวและพฤติกรรมการอนุญาต
เงื่อนไขก่อนเริ่ม
- มี Bearer token ของบัญชีที่ถูกต้องอย่างน้อย 1 รายการ
- ใช้ channel ID ให้สอดคล้องกันระหว่างไคลเอนต์เขียน/อ่าน
ลำดับงาน API/Script
- ยืนยันความเป็นเจ้าของช่องทาง:
- การเขียนแบบยืนยันตัวตนครั้งแรกไปที่
POST /log?cid=<id>บนช่องทางที่ยังไม่มีเจ้าของ จะตั้งบัญชีเจ้าของให้ช่องทาง
- การเขียนแบบยืนยันตัวตนครั้งแรกไปที่
- อ่านในฐานะเจ้าของ:
GET /log?cid=<id>พร้อม token ของเจ้าของ จะคืน log ของช่องทาง
- บังคับสิทธิ์ผู้ที่ไม่ใช่เจ้าของ:
- การอ่าน/เขียนด้วยบัญชีไม่ตรงกันจะได้
404
- การอ่าน/เขียนด้วยบัญชีไม่ตรงกันจะได้
- บังคับสิทธิ์เมื่อไม่ยืนยันตัวตน:
- การเขียนช่องทางส่วนตัวโดยไม่มี token จะได้
401 - การอ่านช่องทางส่วนตัวโดยไม่มี token จะได้
404
- การเขียนช่องทางส่วนตัวโดยไม่มี token จะได้
- การเข้าถึงช่องทางส่วนตัวผ่าน WebSocket:
- การ upgrade ไป
/ws?cid=<id>ต้องใช้ token ที่ถูกต้องของเจ้าของ
- การ upgrade ไป
ลำดับงาน 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