ErawanEN

ทำให้ใช้งานได้จริง

ระบบล็อกอินสำหรับผู้ใช้ — โดยไม่ต้องเก็บรหัสผ่าน

ทันทีที่แอปมีผู้ใช้มากกว่าหนึ่งคน มันต้องรู้ว่าใครเป็นคนขอ หน้านี้คือทางที่สั้นที่สุดในการได้สิ่งนั้น และเหตุผลว่าทำไมแอปของคุณดีกว่าถ้าไม่เคยถือรหัสผ่านเลย

1. เพิ่มเข้าไป

erawan addon add my-app auth

คำสั่งนี้ให้แอปมี OpenID Connect issuer ของตัวเอง แล้วรีสตาร์ทพร้อมข้อมูลที่จำเป็นใน environment ไม่ต้องไปสมัครอะไร ไม่ต้องไปตั้งค่าที่ผู้ให้บริการ

2. เลือกว่าใครล็อกอินได้บ้าง

erawan auth providers set my-app google,line

มีสี่ช่องทาง: Google, LINE, GitHub และอีเมล เลือกเฉพาะที่ผู้ใช้ของคุณมีจริง — หน้าล็อกอินที่ยื่นปุ่มสี่ปุ่มให้คนที่ใช้อยู่ช่องทางเดียว คือหน้าที่คนกดออก

3. บอกว่าให้ส่งกลับมาที่ไหน

หลังผู้ใช้ล็อกอินเสร็จ เบราว์เซอร์ต้องถูกส่งไปที่ใดที่หนึ่ง ปลายทางนั้นเป็นรายการที่คุณคุมเอง และอะไรที่ไม่อยู่ในรายการจะถูกปฏิเสธ

erawan auth callback add my-app https://my-app.erawan.app/callback

ระหว่างพัฒนาให้เพิ่ม http://localhost:… ไว้ด้วย รายการนี้มีอยู่เพราะ open redirect บนขั้นตอนล็อกอินคือทางที่ token หลุดไปอยู่ในที่ที่ไม่ควร การปฏิเสธจึงคือตัวฟีเจอร์เอง

4. อ่านค่าในโค้ดของคุณ

แอปจะได้รับ issuer, client id และ secret ผ่าน environment variable แล้วคุยด้วย OIDC ตามมาตรฐาน — ไลบรารีของภาษาไหนก็ใช้ได้ ไม่มีอะไรที่เป็นรูปแบบเฉพาะของเอราวัณให้ต้องเรียนรู้

erawan auth info my-app

คำสั่งนี้พิมพ์ discovery endpoint ซึ่งไลบรารีส่วนใหญ่ต้องการแค่ค่านี้ค่าเดียว

สิ่งที่คุณไม่ต้องทำเลย

เก็บรหัสผ่าน แฮชรหัสผ่าน ส่งอีเมลรีเซ็ต ตัดสินใจว่า session อยู่ได้นานแค่ไหน หรือจัดการตอนที่อีเมลของใครสักคนเปลี่ยนที่ Google — ไม่มีอันไหนมาถึงแอปของคุณ แปลว่าไม่มีอันไหนเป็นของคุณที่จะทำพลาด และรหัสผ่านที่ไม่เคยถือ ย่อมรั่วจากฐานข้อมูลที่คุณไม่ได้ดูแลไม่ได้

สิ่งที่ดูได้คือใครล็อกอินเข้ามาบ้าง ซึ่งปิดบังไว้เป็นค่าเริ่มต้น เพราะเป็นข้อมูลของผู้ใช้ ไม่ใช่ของคุณที่จะเปิดดูเล่นๆ

erawan auth users my-app

บทเรียนทั้งหมด

เพิ่มระบบล็อกอินให้ผู้ใช้ของคุณ — Erawan