ขอโทเคนไม่ได้ (ข้อผิดพลาดการยืนยันตัวตน)

การแก้ปัญหา โทเคน การยืนยันตัวตน OAuth
อาการ
OAuth token endpoint (/oauth/token) ส่งคืน 4xx และขอ access token ไม่ได้

ข้อผิดพลาดหลักและการรับมือ

error สาเหตุ การรับมือ
invalid_clientclient ID/secret ผิดตรวจสอบในพอร์ทัลนักพัฒนา พิจารณาสร้างใหม่
invalid_grantauthorization code หมดอายุ ใช้ไปแล้ว หรือใช้ไม่ได้เริ่มฟลว์การอนุมัติใหม่
redirect_uri_mismatchไม่ตรงกับ URI ที่ลงทะเบียนไว้ตรวจสอบให้ตรงกันทั้งตัวพิมพ์ใหญ่-เล็ก สแลชท้าย และพอร์ต
invalid_scopeสโคปที่ร้องขอไม่ได้รับอนุญาตให้แอปตรวจสอบสโคปในการตั้งค่าแอป
unauthorized_clientแอปใช้ grant type นั้นไม่ได้ตรวจสอบการตั้งค่าชนิดของแอป
unsupported_grant_typeพารามิเตอร์ grant_type ไม่ถูกต้องauthorization_code หรือ refresh_token

เช็กลิสต์การแยกแยะสาเหตุ

  • ☐ client ID / secret สลับกันระหว่าง production กับ development หรือไม่
  • ☐ เพิ่งสร้าง secret ใหม่มาแล้วหรือไม่
  • ☐ แลก authorization code ภายใน 10 นาทีหลังได้รับมาหรือไม่
  • ☐ พยายามใช้ authorization code เดิมซ้ำ 2 ครั้งหรือไม่
  • redirect_uri ตรงกับตอนขอ authorization request ทุกประการหรือไม่
  • ☐ ตั้งเป็น Content-Type: application/x-www-form-urlencoded แล้วหรือไม่
  • ☐ พารามิเตอร์อยู่ใน body ไม่ใช่ query หรือไม่

ข้อผิดพลาดที่พบบ่อย

ส่งเป็น JSON ไปโดยไม่ตั้งใจ

OAuth token endpoint ต้องใช้ application/x-www-form-urlencoded เท่านั้น หากส่ง JSON จะได้ invalid_request

ส่งข้อมูล client ซ้ำทั้งใน Basic auth และใน body

โปรดเลือกใช้เพียงวิธีเดียว หากส่งทั้งสองอย่างอาจได้รับ invalid_request

ลืม URL-encode secret

หาก secret มีอักขระพิเศษ จำเป็นต้อง URL-encode

คู่มือที่เกี่ยวข้อง

วันที่เผยแพร่: 2569-04-27 วันที่อัปเดต: 2569-07-06
แท็ก
API (22) OAuth (15) Android (10) iOS (9) Webhook (8) api (7) oauth (5) getting-started (4) การลงทะเบียนแอป (4) การแก้ปัญหา (4)
บทความที่เกี่ยวข้อง