JL
JA
ドキュメントホーム
メニュー
ガイド

プライベートチャネルとアクセス

プライベートチャネルの読み書きに対して、アカウント紐づけアクセスルールを適用します。

guide jsonlog

プライベートチャネルとアクセス

目的: プライベートチャネルの所有権と認可動作を定義すること。

前提条件

  • 有効なアカウント Bearer トークンを少なくとも 1 つ持っていること。
  • 書き込み/読み取りクライアント間でチャネル 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

関連ドキュメント