ก่อนใช้โปรแกรมจำลอง Authentication กับแอปของคุณ โปรดตรวจสอบว่า คุณเข้าใจเวิร์กโฟลว์ Firebase Local Emulator Suite โดยรวม คุณติดตั้งและกำหนดค่าแล้ว Local Emulator Suite และตรวจสอบคำสั่ง CLI
สำหรับหัวข้อนี้ถือว่าคุณคุ้นเคยกับการพัฒนา Firebase Authentication โซลูชันสำหรับเวอร์ชันที่ใช้งานจริง ตรวจสอบเอกสาร หากจำเป็น สำหรับชุดค่าผสมของแพลตฟอร์มและเทคนิคการตรวจสอบสิทธิ์
ฉันใช้โปรแกรมจำลอง Authentication ทำอะไรได้บ้าง
โปรแกรมจำลอง Authentication มอบการจำลองท้องถิ่นที่มีความแม่นยำสูงของ Firebase Authentication ซึ่งมีฟังก์ชันการทำงานส่วนใหญ่ที่พบได้ใน การผลิต Firebase Authentication เมื่อจับคู่กับแพลตฟอร์ม Apple โปรแกรมจำลองช่วยให้คุณทำสิ่งต่อไปนี้ได้ SDK ของ Android และเว็บ Firebase
- สร้าง อัปเดต และจัดการบัญชีผู้ใช้จำลองสำหรับการทดสอบอีเมล/รหัสผ่าน หมายเลขโทรศัพท์/SMS, SMS แบบหลายปัจจัย และข้อมูลประจำตัวของบุคคลที่สาม (เช่น Google) การตรวจสอบสิทธิ์ผู้ให้บริการ
- ดูและแก้ไขผู้ใช้ที่จำลอง
- สร้างต้นแบบระบบการตรวจสอบสิทธิ์โทเค็นที่กำหนดเอง
- ตรวจสอบข้อความที่เกี่ยวข้องกับการตรวจสอบสิทธิ์ในแท็บบันทึก UI โปรแกรมจำลอง
เลือกโปรเจ็กต์ Firebase
Firebase Local Emulator Suite จะจำลองผลิตภัณฑ์สำหรับโปรเจ็กต์ Firebase โปรเจ็กต์เดียว
หากต้องการเลือกโปรเจ็กต์ที่จะใช้ ในการเรียกใช้ CLI ก่อนที่คุณจะเริ่มโปรแกรมจำลอง
firebase use
ในไดเรกทอรีที่ใช้งานอยู่ หรือคุณสามารถส่ง
ธง --project
ไปยังโปรแกรมจำลองแต่ละตัว
คำสั่ง
Local Emulator Suite รองรับการจำลองโปรเจ็กต์ Firebase จริงและ สาธิต
ประเภทโปรเจ็กต์ | ฟีเจอร์ | ใช้กับโปรแกรมจำลอง |
---|---|---|
จริง |
โปรเจ็กต์ Firebase จริงคือโปรเจ็กต์ที่คุณสร้างและกำหนดค่า (มีแนวโน้ม ผ่านคอนโซล Firebase) โปรเจ็กต์จริงมีทรัพยากรที่ใช้งานอยู่ เช่น อินสแตนซ์ฐานข้อมูล และพื้นที่เก็บข้อมูล ที่เก็บข้อมูล ฟังก์ชัน หรือทรัพยากรอื่นๆ ที่คุณตั้งค่าไว้สำหรับ Firebase นั้น |
เมื่อทำงานกับโปรเจ็กต์ Firebase จริง คุณสามารถเรียกใช้โปรแกรมจำลองสำหรับ หรือผลิตภัณฑ์ที่รองรับทั้งหมด สำหรับผลิตภัณฑ์ใดๆ ที่คุณไม่ได้จำลอง แอปและโค้ดจะ โต้ตอบกับทรัพยากรที่เผยแพร่อยู่ (อินสแตนซ์ฐานข้อมูล พื้นที่เก็บข้อมูล ที่เก็บข้อมูล ฟังก์ชัน เป็นต้น) |
เดโม |
โปรเจ็กต์ Firebase สาธิตไม่มีการกำหนดค่า Firebase จริง และ ไม่มีแหล่งข้อมูลที่เผยแพร่อยู่ โดยปกติแล้วโครงการเหล่านี้จะเข้าถึงผ่าน Codelab หรือ บทแนะนำอื่นๆ รหัสโปรเจ็กต์สำหรับโปรเจ็กต์สาธิตจะมี |
เมื่อทำงานกับโปรเจ็กต์ Firebase สาธิต แอปและโค้ดจะโต้ตอบกับ โปรแกรมจำลองเท่านั้น หากแอปพยายามโต้ตอบกับทรัพยากร ที่โปรแกรมจำลองไม่ได้ทำงานอยู่ โค้ดนั้นจะล้มเหลว |
เราขอแนะนำให้คุณใช้โปรเจ็กต์เดโมเมื่อเป็นไปได้ สิทธิประโยชน์มีดังนี้
- ตั้งค่าได้ง่ายขึ้น เนื่องจากคุณสามารถเรียกใช้โปรแกรมจำลองได้โดยไม่ต้องสร้าง โปรเจ็กต์ Firebase
- ปลอดภัยขึ้น เนื่องจากโค้ดของคุณเรียกใช้แบบไม่มีการจำลองโดยไม่ได้ตั้งใจ (เวอร์ชันที่ใช้งานจริง) จะไม่มีการเปลี่ยนแปลงข้อมูล การใช้งาน และการเรียกเก็บเงิน
- รองรับการใช้งานแบบออฟไลน์ได้ดีกว่า เนื่องจากไม่จำเป็นต้องเข้าอินเทอร์เน็ต ดาวน์โหลดการกำหนดค่า SDK
ใช้เครื่องดนตรีกับแอปเพื่อพูดคุยกับโปรแกรมจำลอง
SDK สำหรับ Android, iOS และเว็บ
ตั้งค่าการกำหนดค่าในแอปหรือชั้นเรียนทดสอบเพื่อโต้ตอบกับ โปรแกรมจำลอง Authentication ดังนี้
Kotlin+KTX
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
Swift
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)
Web
import { getAuth, connectAuthEmulator } from "firebase/auth"; const auth = getAuth(); connectAuthEmulator(auth, "http://127.0.0.1:9099");
Web
const auth = firebase.auth(); auth.useEmulator("http://127.0.0.1:9099");
ไม่จําเป็นต้องตั้งค่าเพิ่มเติมเพื่อสร้างต้นแบบและทดสอบการโต้ตอบระหว่าง Authentication และ Cloud Functions หรือ Firebase Security Rules เป็นเวลา Cloud Firestore หรือ Realtime Database เมื่อมีการกำหนดค่าโปรแกรมจำลอง Authentication และโปรแกรมจำลองอื่นๆ โทรศัพท์จะทำงานร่วมกันโดยอัตโนมัติ
Admin SDK วินาที
Firebase Admin SDK จะเชื่อมต่อกับโปรแกรมจำลอง Authentication โดยอัตโนมัติเมื่อ
ตั้งค่าตัวแปรสภาพแวดล้อม FIREBASE_AUTH_EMULATOR_HOST
แล้ว
export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"
โปรดทราบว่าโปรแกรมจำลอง Cloud Functions จะรับรู้ โปรแกรมจำลอง Authentication เพื่อให้คุณข้ามขั้นตอนนี้ได้เมื่อทดสอบการผสานรวมระหว่าง โปรแกรมจำลอง Cloud Functions และ Authentication ตัวแปรสภาพแวดล้อมจะเป็น ตั้งค่าโดยอัตโนมัติสำหรับ Admin SDK ใน Cloud Functions
เมื่อมีชุดตัวแปรสภาพแวดล้อม Firebase Admin SDK จะยอมรับรหัสที่ไม่มีการรับรอง
โทเค็นและคุกกี้เซสชันที่ออกโดยโปรแกรมจำลอง Authentication (ผ่าน verifyIdToken
และ createSessionCookie
ตามลำดับ) เพื่ออำนวยความสะดวกในการพัฒนาในพื้นที่
และการทดสอบ โปรดอย่าตั้งค่าตัวแปรสภาพแวดล้อมในเวอร์ชันที่ใช้งานจริง
หากต้องการให้รหัส Admin SDK เชื่อมต่อกับโปรแกรมจำลองที่แชร์ซึ่งทำงานอยู่
สภาพแวดล้อมอื่น คุณจะต้องระบุรหัสโปรเจ็กต์เดียวกันกับที่ตั้งค่าไว้โดยใช้ Firebase CLI คุณส่งรหัสโปรเจ็กต์ไปยัง initializeApp
ได้
โดยตรงหรือตั้งค่าตัวแปรสภาพแวดล้อม GCLOUD_PROJECT
Admin SDK ของ Node.js
admin.initializeApp({ projectId: "your-project-id" });
ตัวแปรสภาพแวดล้อม
export GCLOUD_PROJECT="your-project-id"
โทเค็นรหัส
เพื่อความปลอดภัย โปรแกรมจำลอง Authentication จะออกโทเค็นรหัส unsign ซึ่ง ได้รับการยอมรับโดยโปรแกรมจำลอง Firebase อื่นๆ หรือ Firebase Admin SDK เท่านั้น กำหนดค่าแล้ว เวอร์ชันที่ใช้งานจริงจะปฏิเสธโทเค็นเหล่านี้ บริการ Firebase หรือ Firebase Admin SDK ที่ทำงานในโหมดที่ใช้งานจริง (เช่น การทำงานเริ่มต้นที่ไม่มีขั้นตอนการตั้งค่าที่อธิบายไว้ข้างต้น)
เริ่มโปรแกรมจำลอง
คุณสามารถใช้โปรแกรมจำลอง Authentication แบบอินเทอร์แอกทีฟผ่าน Emulator Suite UI และไม่มีการโต้ตอบผ่านอินเทอร์เฟซ REST ภายในเครื่อง ดังต่อไปนี้ จะครอบคลุมกรณีการใช้งานแบบอินเทอร์แอกทีฟและแบบไม่โต้ตอบ
วิธีเริ่มต้นโปรแกรมจำลอง Authentication อินเทอร์เฟซ REST และ Emulator Suite UI, ดำเนินการ:
firebase emulators:start
อีเมลจำลอง ลิงก์อีเมล และการตรวจสอบสิทธิ์แบบไม่ระบุชื่อ
สําหรับการตรวจสอบสิทธิ์แบบไม่ระบุชื่อ แอปสามารถใช้ตรรกะการลงชื่อเข้าใช้สำหรับ แพลตฟอร์ม (iOS, Android, เว็บ)
สำหรับการตรวจสอบสิทธิ์อีเมล/รหัสผ่าน คุณสามารถเริ่มสร้างต้นแบบได้โดยการเพิ่ม บัญชีผู้ใช้ไปยังโปรแกรมจำลอง Authentication จากแอปของคุณโดยใช้เมธอด SDK Authentication หรือใช้ Emulator Suite UI
- ใน Emulator Suite UI ให้คลิกแท็บการตรวจสอบสิทธิ์
- คลิกปุ่มเพิ่มผู้ใช้
- ทำตามวิซาร์ดการสร้างบัญชีผู้ใช้ โดยกรอกการตรวจสอบสิทธิ์อีเมล ด้วย
เมื่อสร้างผู้ใช้ทดสอบแล้ว แอปของคุณจะสามารถนำผู้ใช้เข้าสู่ระบบและออกจากระบบด้วยตรรกะ SDK สำหรับแพลตฟอร์มของคุณได้ (iOS, Android เว็บ)
สำหรับการทดสอบการยืนยันอีเมล/การลงชื่อเข้าใช้ด้วยขั้นตอนของลิงก์อีเมล โปรแกรมจำลอง
พิมพ์ URL ไปยังเทอร์มินัลที่มีการเรียกใช้ firebase emulators:start
i To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-key
วางลิงก์ลงในเบราว์เซอร์เพื่อจำลองเหตุการณ์การยืนยัน แล้วตรวจสอบ การยืนยันสำเร็จหรือไม่
{
"authEmulator": {
"success": "The email has been successfully verified.",
"email": "customer@example.com"
}
}
สำหรับการทดสอบการรีเซ็ตรหัสผ่าน โปรแกรมจำลองจะพิมพ์ URL ที่คล้ายกัน รวมถึง พารามิเตอร์ newPassword (ซึ่งอาจเปลี่ยนแปลงได้ตามต้องการ) ไปยังเทอร์มินัล
http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD
การทดสอบแบบไม่โต้ตอบ
แทนที่จะใช้ Emulator Suite UI หรือรหัสไคลเอ็นต์ในการจัดการอีเมล/รหัสผ่าน คุณสามารถเขียนสคริปต์การตั้งค่าการทดสอบที่เรียกใช้ REST API เพื่อสร้าง และลบบัญชีผู้ใช้ รวมถึงดึงข้อมูลรหัสยืนยันอีเมลนอกขอบเขตเพื่อป้อนข้อมูล URL การยืนยันอีเมลของโปรแกรมจำลอง วิธีนี้จะแยกโค้ดแพลตฟอร์มและโค้ดการทดสอบออกจากกัน และให้คุณทดสอบแบบไม่โต้ตอบ
สำหรับขั้นตอนการทดสอบอีเมลและรหัสผ่านที่ไม่มีการโต้ตอบ พารามิเตอร์ ตามลำดับมีดังนี้
- สร้างผู้ใช้ที่มีปลายทาง REST สำหรับการลงชื่อสมัครใช้ Authentication
- ให้ผู้ใช้ลงชื่อเข้าใช้ด้วยอีเมลและรหัสผ่านเพื่อทำการทดสอบ
- ดึงข้อมูลการยืนยันอีเมลนอกขอบเขตหากเกี่ยวข้องกับการทดสอบของคุณ จากปลายทาง REST เฉพาะโปรแกรม
- ล้างบันทึกผู้ใช้ด้วยปลายทาง REST เฉพาะโปรแกรมจำลองเพื่อล้างข้อมูล
การจำลองการตรวจสอบสิทธิ์ทางโทรศัพท์/SMS
โปรแกรมจำลองการตรวจสอบสิทธิ์ไม่รองรับการตรวจสอบสิทธิ์ทางโทรศัพท์ในกรณีต่อไปนี้
- ขั้นตอน reCAPTCHA และ APN เมื่อกำหนดค่าให้โต้ตอบกับโปรแกรมจำลอง SDK ปิดใช้วิธีการยืนยันเหล่านี้ในลักษณะเดียวกับที่อธิบายไว้สำหรับ การทดสอบการผสานรวม (iOS Android เว็บ)
- ทดสอบหมายเลขโทรศัพท์ด้วยรหัสที่กำหนดค่าไว้ล่วงหน้าในคอนโซล Firebase
มิฉะนั้น ขั้นตอนการตรวจสอบสิทธิ์โทรศัพท์/SMS ในรูปของรหัสไคลเอ็นต์คือ เหมือนกับที่อธิบายสำหรับเวอร์ชันที่ใช้งานจริง (iOS, Android, เว็บ)
กำลังใช้ Emulator Suite UI:
- ใน Emulator Suite UI ให้คลิกแท็บการตรวจสอบสิทธิ์
- คลิกปุ่มเพิ่มผู้ใช้
- ทำตามวิซาร์ดการสร้างบัญชีผู้ใช้ แล้วกรอกการตรวจสอบสิทธิ์ทางโทรศัพท์ ด้วย
แต่สำหรับขั้นตอนการตรวจสอบสิทธิ์ทางโทรศัพท์ โปรแกรมจำลองจะไม่ทริกเกอร์การนำส่ง
เนื่องจากการติดต่อผู้ให้บริการ อยู่นอกขอบเขตและ
เหมาะสำหรับการทดสอบในท้องถิ่น! แต่โปรแกรมจำลองจะพิมพ์โค้ดที่จะ
มีการส่งผ่าน SMS ไปยังเครื่องชำระเงินเดียวกันกับที่คุณใช้บริการ
firebase emulators:start
; ป้อนโค้ดนี้ลงในแอปเพื่อจำลองผู้ใช้
ตรวจสอบ SMS ของพวกเขา
การทดสอบแบบไม่โต้ตอบ
สำหรับการทดสอบการตรวจสอบสิทธิ์โทรศัพท์แบบไม่โต้ตอบ ให้ใช้โปรแกรมจำลอง Authentication REST API เพื่อเรียกคืนรหัส SMS ที่ใช้ได้ โปรดทราบว่าโค้ดจะแตกต่างจาก ทุกครั้งที่คุณเริ่มขั้นตอน
ลำดับโดยทั่วไปมีดังนี้
- โทรหาแพลตฟอร์ม
signInWithPhoneNumber
เพื่อเริ่มกระบวนการยืนยัน - ดึงรหัสยืนยันโดยใช้ปลายทาง REST เฉพาะโปรแกรมจำลอง
- โทร
confirmationResult.confirm(code)
ตามปกติเพื่อแจ้งรหัสยืนยัน
SMS แบบหลายปัจจัย
โปรแกรมจำลอง Authentication รองรับการสร้างต้นแบบและทดสอบ SMS แบบหลายปัจจัย ขั้นตอนการตรวจสอบสิทธิ์ (MFA) พร้อมให้ใช้งานในเวอร์ชันที่ใช้งานจริงสำหรับ iOS Android และ เว็บ
เมื่อเพิ่มผู้ใช้จำลองลงในโปรแกรมจำลอง คุณจะเปิดใช้ MFA และกำหนดค่า
หมายเลขโทรศัพท์อย่างน้อย 1 หมายเลขที่จะใช้ส่งข้อความ SMS จากปัจจัยที่สอง ข้อความ
เอาต์พุตไปยังเทอร์มินัลเดียวกับที่คุณเรียกใช้ firebase emulators:start
และพร้อมใช้งานจากอินเทอร์เฟซ REST
การตรวจสอบสิทธิ์ของผู้ให้บริการข้อมูลประจำตัวบุคคลที่สาม (IDP) ที่จำลองขึ้น
โปรแกรมจำลอง Authentication ช่วยให้คุณทดสอบขั้นตอนการตรวจสอบสิทธิ์ของบุคคลที่สามได้หลายแบบใน แอป iOS, Android หรือเว็บแอปที่ไม่มีการเปลี่ยนแปลงจากโค้ดเวอร์ชันที่ใช้งานจริง ตัวอย่างเช่น ของขั้นตอนการตรวจสอบสิทธิ์ โปรดดูข้อมูลเพิ่มเติมในเอกสารประกอบ ผู้ให้บริการและแพลตฟอร์มต่างๆ ที่คุณสามารถใช้ในแอปของคุณ
โดยทั่วไปแล้ว คุณสามารถใช้ Firebase SDK เพื่อตรวจสอบสิทธิ์ จาก 2 วิธี ได้แก่
- แอปของคุณให้ SDK จัดการกระบวนการทั้งหมดได้จากต้นทางถึงปลายทาง ซึ่งรวมถึง การโต้ตอบทั้งหมดกับผู้ให้บริการ IdP บุคคลที่สามเพื่อดึงข้อมูลเข้าสู่ระบบ
- แอปของคุณดึงข้อมูลเข้าสู่ระบบจากผู้ให้บริการบุคคลที่สามด้วยตนเองโดยใช้บริการนั้น SDK ของบุคคลที่สามและส่งข้อมูลเข้าสู่ระบบเหล่านั้นไปยัง SDK ของ Authentication
โปรดตรวจสอบลิงก์เอกสารด้านบน เลือกใช้ขั้นตอนใดก็ได้ ระหว่าง Firebase SDK กับการดึงข้อมูลเข้าสู่ระบบด้วยตนเอง ในการใช้กัน โปรแกรมจำลอง Authentication รองรับการทดสอบทั้ง 2 แนวทาง
การทดสอบขั้นตอน IdP ที่ขับเคลื่อนด้วย Firebase SDK
หากแอปใช้ขั้นตอนต้นทางถึงปลายทางของ Firebase SDK เช่น OAuthProvider
สำหรับ
ลงชื่อเข้าใช้ด้วย Microsoft, GitHub หรือ Yahoo สำหรับการทดสอบแบบอินเทอร์แอกทีฟ Authentication
โปรแกรมจำลองจะแสดงหน้าลงชื่อเข้าใช้ที่เกี่ยวข้องในเวอร์ชันในเครื่องเพื่อช่วยคุณ
ทดสอบการตรวจสอบสิทธิ์จากเว็บแอปที่เรียกใช้ signinWithPopup
หรือ
signInWithRedirect
หน้าลงชื่อเข้าใช้ที่แสดงในเครื่องนี้จะปรากฏใน
แอปบนอุปกรณ์เคลื่อนที่ ซึ่งแสดงผลโดยไลบรารี WebView ของแพลตฟอร์ม
โปรแกรมจำลองจะจำลองบัญชีผู้ใช้และข้อมูลเข้าสู่ระบบของบุคคลที่สามตามความจำเป็น เมื่อกระบวนการดำเนินต่อไป
การทดสอบโฟลว์ IdP ด้วยการดึงข้อมูลเข้าสู่ระบบด้วยตนเอง
หากใช้ "ด้วยตนเอง" เทคนิคการลงชื่อเข้าใช้และเรียก signInWithCredentials
ของแพลตฟอร์ม
จากนั้นตามปกติ แอปจะขอการลงชื่อเข้าใช้ของบุคคลที่สามจริงและ
ดึงข้อมูลเข้าสู่ระบบของบุคคลที่สามจริง
โปรดทราบว่าโปรแกรมจำลองรองรับการตรวจสอบสิทธิ์ signInWithCredential
เท่านั้น
สำหรับข้อมูลเข้าสู่ระบบที่ดึงมาจาก Google Sign-In, Apple และผู้ให้บริการอื่นๆ ที่
ใช้โทเค็นรหัสที่ใช้เป็น JSON Web Token (JWT) โทเค็นเพื่อการเข้าถึง
(เช่น ข้อมูลจาก Facebook หรือ Twitter ซึ่งไม่ใช่ JWT) ไม่ใช่
ที่รองรับ ส่วนถัดไปจะกล่าวถึงทางเลือกอื่นในกรณีเหล่านี้
การทดสอบแบบไม่โต้ตอบ
วิธีหนึ่งในการทดสอบแบบไม่โต้ตอบคือการคลิกของผู้ใช้โดยอัตโนมัติในการลงชื่อเข้าใช้ ที่แสดงโดยโปรแกรมจำลอง สำหรับเว็บแอป ให้ใช้อินเทอร์เฟซการควบคุมอย่างเช่น WebDriver สำหรับอุปกรณ์เคลื่อนที่ ให้ใช้เครื่องมือทดสอบ UI จากแพลตฟอร์มของคุณ เช่น Espresso หรือ Xcode
หรือคุณจะอัปเดตรหัสเพื่อใช้ signInWithCredential
ก็ได้
(เช่น ใน Branch ของโค้ด) และใช้ขั้นตอนการตรวจสอบสิทธิ์โทเค็นที่มีการจำลอง
โทเค็นรหัสสำหรับบัญชีแทนที่จะเป็นข้อมูลเข้าสู่ระบบจริง
- กำหนดเส้นทางใหม่หรือแสดงความคิดเห็นส่วนของโค้ดที่ดึง idToken จาก IDP ทำให้คุณไม่ต้องป้อนชื่อผู้ใช้และรหัสผ่านจริงในระหว่าง และลดการทดสอบของคุณจากโควต้า API และขีดจำกัดอัตราที่ IdP
- ข้อที่ 2 ให้ใช้สตริง JSON ตามตัวอักษรแทนโทเค็นสำหรับ
signInWithCredential
เมื่อใช้ SDK ของเว็บเป็นตัวอย่าง คุณสามารถเปลี่ยน ไปยัง:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
'{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));
เมื่อใช้กับโปรแกรมจำลอง โค้ดนี้จะตรวจสอบสิทธิ์ผู้ใช้ได้สำเร็จ
ด้วยอีเมล foo@example.com
ที่ Google ให้คิดว่าช่องย่อย
เป็นคีย์หลัก
ซึ่งสามารถเปลี่ยนเป็นสตริงใดก็ได้ เพื่อจำลองการลงชื่อเข้าใช้ของผู้ใช้แต่ละคน คุณสามารถ
เช่น ให้แทนที่ firebase.auth.GoogleAuthProvider
new firebase.auth.OAuthProvider('yahoo.com')
หรือรหัสผู้ให้บริการอื่นๆ ที่คุณต้องการ
เพื่อเลียนแบบ
การจำลองการตรวจสอบสิทธิ์โทเค็นที่กำหนดเอง
โปรแกรมจำลอง Authentication จัดการการตรวจสอบสิทธิ์ด้วยเว็บโทเค็น JSON ที่กำหนดเองโดยใช้
การเรียกไปยังเมธอด signInWithCustomToken
บนแพลตฟอร์มที่รองรับ ตามที่อธิบายไว้
ในเอกสารประกอบAuthenticationเวอร์ชันที่ใช้งานจริง
ความแตกต่างระหว่างโปรแกรมจำลอง Authentication กับเวอร์ชันที่ใช้งานจริง
โปรแกรมจำลอง Firebase Authentication จะจำลองฟีเจอร์หลายอย่างของเวอร์ชันที่ใช้งานจริง ผลิตภัณฑ์ แต่เนื่องจากระบบตรวจสอบสิทธิ์ทุกประเภท ความปลอดภัยในหลายระดับ (อุปกรณ์, ผู้ให้บริการบุคคลที่สาม, Firebase เป็นต้น) โปรแกรมจำลองจะสร้างโฟลว์ทั้งหมดใหม่อย่างถูกต้องได้ยาก
Cloud IAM
Firebase Emulator Suite จะไม่พยายามจำลองหรือทำตาม พฤติกรรมที่เกี่ยวกับ IAM สำหรับการวิ่ง โปรแกรมจำลองปฏิบัติตามการรักษาความปลอดภัยของ Firebase กฎที่มีให้ แต่ในสถานการณ์ที่มักจะใช้ IAM เช่น เพื่อตั้งค่า Cloud Functions ที่เรียกใช้บัญชีบริการ รวมถึงสิทธิ์ต่างๆ โปรแกรมจำลองไม่สามารถกำหนดค่าได้ และจะใช้บัญชีที่ใช้ได้ทั่วโลกใน เครื่องของนักพัฒนาซอฟต์แวร์ ซึ่งคล้ายกับการเรียกใช้สคริปต์ในเครื่องโดยตรง
ลงชื่อเข้าใช้ผ่านลิงก์อีเมลบนอุปกรณ์เคลื่อนที่
เนื่องจากในแพลตฟอร์มอุปกรณ์เคลื่อนที่ การลงชื่อเข้าใช้ลิงก์อีเมล จะใช้ลิงก์แบบไดนามิกของ Firebase ลิงก์ดังกล่าวทั้งหมดจะเปิดขึ้นมาบนแพลตฟอร์มเว็บ (อุปกรณ์เคลื่อนที่) แทน
การลงชื่อเข้าใช้ของบุคคลที่สาม
Firebase Authentication ต้องใช้ข้อมูลเข้าสู่ระบบที่ปลอดภัยสำหรับขั้นตอนการลงชื่อเข้าใช้ของบุคคลที่สาม จากผู้ให้บริการบุคคลที่สาม เช่น Twitter และ GitHub
ข้อมูลเข้าสู่ระบบจริงจากผู้ให้บริการ OpenID Connect เช่น Google และ Apple มีดังนี้ ยอมรับโดยโปรแกรมจำลอง Authentication ข้อมูลเข้าสู่ระบบจากผู้ให้บริการที่ไม่ใช่ OpenID Connect ไม่ได้รับการสนับสนุน
การลงชื่อเข้าใช้ด้วยอีเมล / SMS
ในแอปเวอร์ชันที่ใช้งานจริง ขั้นตอนการลงชื่อเข้าใช้อีเมลและ SMS จะเป็นแบบไม่พร้อมกัน ซึ่งผู้ใช้จะตรวจสอบข้อความที่ได้รับและป้อนรหัสการเข้าสู่ระบบ ลงในอินเทอร์เฟซการลงชื่อเข้าใช้ โปรแกรมจำลอง Authentication จะไม่ส่งอีเมลหรือ SMS ใดๆ แต่ตามที่อธิบายไว้ข้างต้น จะมีการสร้างรหัสการเข้าสู่ระบบและเอาต์พุตไปยังเทอร์มินัลเพื่อใช้ใน การทดสอบ
โปรแกรมจำลองไม่รองรับความสามารถในการกำหนดหมายเลขโทรศัพท์ทดสอบด้วย แก้ไขรหัสการเข้าสู่ระบบตามที่ทำได้โดยใช้คอนโซล Firebase
การตรวจสอบสิทธิ์โทเค็นที่กำหนดเอง
โปรแกรมจำลอง Authentication ไม่ได้ตรวจสอบลายเซ็นหรือวันหมดอายุของโค้ดที่กำหนดเอง โทเค็น ซึ่งจะช่วยให้คุณใช้โทเค็นที่สร้างขึ้นด้วยมือและใช้โทเค็นซ้ำได้ อย่างไม่มีกำหนดในการสร้างต้นแบบและสถานการณ์ทดสอบ
การจำกัดอัตรา / ป้องกันการละเมิด
โปรแกรมจำลอง Authentication ไม่จำลองการจำกัดอัตราเวอร์ชันที่ใช้งานจริงหรือป้องกันการละเมิด ใหม่ๆ
ฟังก์ชันการบล็อก
ในเวอร์ชันที่ใช้งานจริง ระบบจะเขียนผู้ใช้ไปยังพื้นที่เก็บข้อมูล 1 ครั้งหลังจากทั้ง beforeCreate
และ beforeSignIn
เหตุการณ์จะถูกทริกเกอร์ แต่เนื่องจากข้อจำกัดทางเทคนิค
โปรแกรมจำลอง Authentication จะเขียนเพื่อจัดเก็บ 2 ครั้ง คือหลังจากการสร้างผู้ใช้
อีกรายการหลังจากลงชื่อเข้าใช้ ซึ่งหมายความว่า สำหรับผู้ใช้ใหม่ คุณสามารถโทรติดต่อ
getAuth().getUser()
ใน beforeSignIn
ในโปรแกรมจำลอง Authentication แต่คุณจะต้อง
พบข้อผิดพลาดในการดำเนินการดังกล่าว
ฉันควรทำอย่างไรต่อไป
หากต้องการดูชุดวิดีโอที่มีการดูแลจัดการและตัวอย่างวิธีการโดยละเอียด ให้ทำตาม เพลย์ลิสต์การฝึกของ Firebase Emulators
เนื่องจากฟังก์ชันที่เรียกใช้เป็นการผสานรวมโดยทั่วไปกับ Authentication ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลอง Cloud Functions for Firebase ได้ที่เรียกใช้ฟังก์ชันในเครื่อง