จดหมายถึงผู้ให้บริการ OAuth
(pilcrowonpaper.com)-
จดหมายถึงผู้ให้บริการ OAuth
-
GitHub
- token endpoint ส่งคืนรหัสสถานะ 200 แม้เกิดข้อผิดพลาด
- การตอบกลับเมื่อเกิดข้อผิดพลาดควรใช้รหัสสถานะ 400 หรือ 401
-
Facebook
- token endpoint ส่งคืนการตอบกลับข้อผิดพลาดแบบกำหนดเอง
- ควรเป็นอ็อบเจ็กต์ JSON ที่มีฟิลด์ error
-
TikTok
- เซิร์ฟเวอร์ใช้พารามิเตอร์
client_keyแทนclient_id - ไม่มีเหตุผลที่อธิบายการเบี่ยงเบนจากข้อกำหนดนี้
- เซิร์ฟเวอร์ใช้พารามิเตอร์
-
Strava
- เซิร์ฟเวอร์ใช้รายการที่คั่นด้วยจุลภาคสำหรับพารามิเตอร์ scope
- ควรเป็นรายการที่คั่นด้วยช่องว่าง
-
Naver
- เซิร์ฟเวอร์ส่งคืนเวลาหมดอายุของโทเค็นเป็นสตริง
- นี่เป็นปัญหาที่เกินกว่าประเด็นเรื่องการปฏิบัติตามข้อกำหนด
-
ผู้ให้บริการ OAuth หลายราย
- ควรรองรับ HTTP Basic authentication แทนการใช้พารามิเตอร์
client_secretสำหรับการยืนยันตัวตนของไคลเอนต์ - ในมาตรฐาน OAuth 2.1 นั้น HTTP Basic authentication เป็นทางเลือก แต่แม้จะกำหนดให้ใช้ PKCE ผู้ให้บริการส่วนใหญ่ก็ยังไม่ใช้
- ควรรองรับ HTTP Basic authentication แทนการใช้พารามิเตอร์
-
AWS
- เคยได้รับรายงานบั๊กหลายรายการเมื่อใช้ร่วมกับไลบรารี OAuth client แต่ไม่สามารถทำซ้ำปัญหาได้ จึงลบเนื้อหาที่เกี่ยวข้องออก
-
1 ความคิดเห็น
ระหว่างสร้างโปรเจ็กต์บริการภาครัฐสำหรับประชาชน ผมเคยมีประสบการณ์ที่ต้องใช้เวลาเต็ม ๆ 1 เดือนแค่กับการทำฟังก์ชัน OAuth (OIDC)...
เพราะใช้ไลบรารีภายนอกไม่ได้ เลยต้องลงมือทำเองทุกอย่างทีละส่วน แต่ถ้าพูดถึงการทำตามมาตรฐาน OAuth ได้อย่างถูกต้อง ก็มีแค่ Kakao กับ Google เท่านั้น...
ส่วน Naver ก็ประมาณว่าแค่ล็อกอินได้ก็ไม่มีปัญหา ระดับที่ไม่แน่ใจด้วยซ้ำว่าควรใช้ดีไหม และ Apple ก็ต้องใช้โค้ดสำหรับการติดตั้งมากกว่าซอร์ส OAuth เดิมเกิน 3 เท่า จนทุกวันนี้นึกย้อนกลับไปก็ยังจำไม่ได้เลยว่าตอนนั้นทำมันขึ้นมาได้ยังไง
บางเจ้าก็มีเคสที่ response code พังยับอย่างในบทความด้านบน และหนักเข้าจนถึงขั้นมีผู้ให้บริการที่ตอบกลับ 418 (I'm a teapot) มาด้วย
พอมีประสบการณ์แบบนี้ ผมเลยต่อให้ฟีเจอร์อย่าง social login จะสะดวกแค่ไหน ก็เลิกอยากใช้มันไปเลย...