Preview: API ยังอยู่ระหว่างเปิดใช้ รายละเอียดอาจเปลี่ยนก่อนเปิดจริง ดูความคืบหน้าที่ บันทึกการเปลี่ยนแปลง
การยืนยันตัวตน
API token คือรหัสที่บอกว่าคำขอนี้มาจากบอทตัวไหน ทุกคำขอไปที่ https://api.sukson.dev/v1 ต้องส่ง token ของบอทในหัว Authorization แบบ Bearer
GET /v1/me HTTP/1.1Host: api.sukson.devAuthorization: Bearer skbot_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx- token ขึ้นต้นด้วย
skbot_ตามด้วยค่าสุ่ม 256 บิต - Sukson เก็บแค่ค่า hash SHA-256 ของ token ไม่ได้เก็บตัว token เอง จึง แสดงให้ดูครั้งเดียว ตอนสร้างหรือออกใหม่ และกู้คืนไม่ได้
- token หนึ่งตัวผูกกับบอทหนึ่งตัว บอทตัวนั้นคือ
meในทุก endpoint
เมื่อ token ใช้ไม่ได้
หัวข้อที่มีชื่อว่า “เมื่อ token ใช้ไม่ได้”| HTTP | code |
ความหมาย |
|---|---|---|
| 401 | INVALID_TOKEN |
ไม่มี token, รูปแบบผิด, token ถูกเปลี่ยนแล้ว หรือบอทถูกลบ คำตอบมีหัว WWW-Authenticate: Bearer realm="api.sukson.dev" |
| 403 | BOT_DISABLED |
ทีมงาน Sukson ปิดหรือแบนบอทนี้ (ถ้าเจ้าของลบบอท token จะตอบ 401 INVALID_TOKEN) |
| 503 | SERVICE_UNAVAILABLE |
ระบบตรวจ token ไม่ได้ชั่วคราว ลองใหม่ภายหลัง |
เปลี่ยน token (rotate)
หัวข้อที่มีชื่อว่า “เปลี่ยน token (rotate)”ออก token ใหม่ได้ที่หน้าของบอทใน member.sukson.com/bots
- ออก token ใหม่ แล้วคัดลอกเก็บทันที
- อัปเดตค่าในเซิร์ฟเวอร์และ deploy
- token เดิมใช้ไม่ได้ทันทีที่ออกตัวใหม่ แต่บางคำขออาจยังผ่านได้อีกไม่เกินประมาณ 30 วินาที ระหว่างที่ระบบล้างแคช
ถ้าสงสัยว่า token รั่ว ให้เปลี่ยนทันที เช่น เผลอ commit ลง git, ไปโผล่ใน log หรือคนที่รู้ค่าลาออกไปแล้ว
เก็บ token ให้ปลอดภัย
หัวข้อที่มีชื่อว่า “เก็บ token ให้ปลอดภัย”- เก็บใน secret manager หรือตัวแปรสภาพแวดล้อม ห้ามเขียนลงโค้ดหรือ commit ลง git
- เรียก API จาก เซิร์ฟเวอร์เท่านั้น ห้ามใส่ token ในแอปมือถือ โค้ดที่รันในเบราว์เซอร์ หรือไฟล์ที่ผู้ใช้ดาวน์โหลดได้ (API นี้ไม่เปิด CORS อยู่แล้ว)
- อย่าเขียนหัว
Authorizationหรือ URL ที่มี token ลง log - บอทแต่ละตัวมี token ของตัวเอง ถ้ามีหลายบอทก็มีหลาย token
- เรียกด้วย
https://เสมอ ถ้าเคยเผลอเรียกด้วยhttp://token อาจถูกส่งออกไปแบบไม่เข้ารหัสแล้ว ให้เปลี่ยน token ทันที