บูตสแตรป Auth และ Token
วัตถุประสงค์: รับ Bearer token ระดับบัญชีก่อนเรียกใช้เส้นทาง jsonlog ที่ต้องยืนยันตัวตน
หมายเหตุขอบเขต:
- ลำดับงานนี้เรียก endpoint ของ
auth.jsonlog.com - เส้นทางเหล่านี้ไม่อยู่ใน OpenAPI ของ jsonlog
เงื่อนไขก่อนเริ่ม
- เข้าถึงบริการ JsonLog ได้ (ใช้งานในเครื่องค่าเริ่มต้น
http://localhost:3002) - ตั้งค่า environment ของ auth สำหรับ origin และ client แล้ว
- มี
node,curl,jqหากใช้สคริปต์บูตสแตรป
ลำดับงาน UI
- ผู้ใช้เข้าสู่ระบบผ่าน auth client ที่ตั้งค่าสำหรับ jsonlog
- ไคลเอนต์ได้รับ access token ที่มี claim บัญชี (
acc) - ไคลเอนต์ส่ง
Authorization: Bearer <token>เมื่อเรียกเส้นทางป้องกันของ jsonlog
ลำดับงาน API/Script
ใช้ helper สำหรับบูตสแตรปเพื่อเตรียม identity ทดสอบและพิมพ์ manifest ของโทเค็นบัญชี
cd jsonlog
set -a && source .env && set +a
TEST_EMAIL_DOMAIN="example.com" npm run auth:bootstrap
ดึงค่า account_access_token จากผลลัพธ์ manifest เพื่อใช้กับ /query
ลำดับงาน HTTP/curl
AUTH_BASE_URL="https://auth.jsonlog.com"
JSONLOG_BASE_URL="http://localhost:3002"
ACCESS_TOKEN="<account_scoped_token>"
curl -sS "${AUTH_BASE_URL}/.well-known/jwks.json?client_id=cid_jsonlog"
curl -sS -X POST "${JSONLOG_BASE_URL}/query" \
-H "authorization: Bearer ${ACCESS_TOKEN}" \
-H "content-type: application/json" \
--data '{"start_ts": 1700000000000, "end_ts": 1700000600000}'
การตรวจสอบ
- token หายไป/ไม่ถูกต้องที่
/queryจะได้401 - token ถูกต้องและมี claim บัญชีจะได้
200พร้อม query response envelope