Channel Privat Dan Akses
Tujuan: mendefinisikan kepemilikan channel privat dan perilaku otorisasi.
Prasyarat
- Miliki minimal satu token Bearer akun yang valid.
- Gunakan ID channel yang konsisten di client penulis/pembaca.
Alur API/Script
- Klaim kepemilikan channel:
- Tulis autentikasi pertama ke
POST /log?cid=<id>pada channel yang belum dimiliki akan menetapkan akun pemilik.
- Tulis autentikasi pertama ke
- Baca sebagai pemilik:
GET /log?cid=<id>dengan token pemilik mengembalikan log channel.
- Tegakkan akses non-pemilik:
- Baca/tulis dari akun lain mengembalikan
404.
- Baca/tulis dari akun lain mengembalikan
- Tegakkan akses tanpa autentikasi:
- Tulis privat tanpa token mengembalikan
401. - Baca privat tanpa token mengembalikan
404.
- Tulis privat tanpa token mengembalikan
- Akses privat WebSocket:
- Upgrade ke
/ws?cid=<id>memerlukan token pemilik yang valid.
- Upgrade ke
Alur HTTP/curl
JSONLOG_BASE_URL="http://localhost:3002"
OWNER_TOKEN="<owner_account_token>"
OTHER_TOKEN="<other_account_token>"
CID="team-private"
# Pemilik mengklaim/menggunakan channel
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OWNER_TOKEN}" \
-H "content-type: application/json" \
--data '{"message":"owner log"}'
# Non-pemilik tidak dapat membaca channel privat
curl -sS "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "authorization: Bearer ${OTHER_TOKEN}"
# Penulisan tanpa autentikasi diblokir
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=${CID}" \
-H "content-type: application/json" \
--data '{"message":"blocked"}'
Validasi
- Baca/tulis pemilik berhasil dengan
200. - Operasi channel privat non-pemilik mengembalikan
404. - Token hilang saat tulis channel privat mengembalikan
401.