สำหรับพวกเรานักพัฒนาที่เพิ่งเปลี่ยนมาใช้ Firebase ใหม่ๆ น่าจะชื่นชอบระบบ Authentication ของ Firebase พอสมควร เพราะมันช่วยลดเวลาในการทำระบบลงทะเบียน (Registration) และระบบลงชื่อเข้าใช้งาน (Sign In, Authentication) ได้มาก
แต่หากสังเกตลงลึกลงไปสักหน่อย จะพบว่าเราแทบไม่สามารถควบคุมรูปแบบของรหัสผ่านที่ Firebase Authentication ยอมรับได้เลย อย่างเต็มที่ก็
- ไม่ใช่รหัสเปล่า
- อย่างน้อย 6 ตัวอักษร
- ไม่มีการตรวจ weak password เช่น 123456 ก็สามารถใช้ได้ หรือ 111111 ก็สามารถตั้งเป็นรหัสผ่านได้เหมือนกัน
ตอนแรกพลก็สงสัยเหมือนพวกเรานั่นแหละ
เออ เราจะตั้งกฎของรหัสผ่านได้ไหม ปรากฎว่า…
ไม่มีครับ Firebase Authentication ตอนที่พลเขียนเล่าอยู่นี้ ยังไม่มีส่วนที่เราสามารถปรับแต่งเงื่อนไขของรหัสผ่านในการลงทะเบียนผู้ใช้ใหม่ได้
อ่าว แล้วถ้าต้องการจะทำไง
มีแนวทางดังนี้ครับ
- ส่วนของการ Validate หรือพวก Password Rule นี้ สามารถทำได้ตั้งแต่ฝั่ง Client ที่เป็นแอพของเรา หรือไปทำใน Server/Web API ก่อนส่งไปให้ Firebase Authentication
- ประยุกต์ใช้ Cloud Function ของ Firebase อีกที
- สร้าง Provider ของเราใช้งานเองในส่วน Firebase Authentication ไปเลย อันนี้ท่ายาก แต่ไม่ยากเกินไป แค่ใช้เวลา
อ้างอิง – StackOverflow