Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

เชื่อมต่อแอพของคุณกับ Authentication Emulator

ก่อนใช้โปรแกรมจำลองการตรวจสอบสิทธิ์กับแอปของคุณ ตรวจสอบให้แน่ใจว่าคุณ เข้าใจเวิร์กโฟลว์ Firebase Local Emulator Suite โดยรวม และคุณ ติดตั้งและกำหนดค่า Local Emulator Suite และตรวจสอบ คำสั่ง CLI

หัวข้อนี้ถือว่าคุณคุ้นเคยกับการพัฒนาโซลูชันการตรวจสอบสิทธิ์ Firebase สำหรับการผลิตแล้ว หากจำเป็น ให้ตรวจสอบเอกสารประกอบสำหรับการ ผสมผสานระหว่างแพลตฟอร์มและเทคนิคการตรวจสอบสิทธิ์

ฉันจะทำอะไรกับโปรแกรมจำลองการตรวจสอบสิทธิ์ได้บ้าง

โปรแกรมจำลองการตรวจสอบสิทธิ์มีการจำลองบริการ Firebase Authentication ในเครื่องที่มีความเที่ยงตรงสูง โดยให้ฟังก์ชันการทำงานส่วนใหญ่ที่พบใน การผลิต Firebase Authentication เมื่อจับคู่กับแพลตฟอร์ม Apple, Android และ Web Firebase SDK แล้ว อีมูเลเตอร์จะช่วยให้คุณ:

  • สร้าง อัปเดต และจัดการบัญชีผู้ใช้จำลองสำหรับการทดสอบอีเมล/รหัสผ่าน หมายเลขโทรศัพท์/SMS SMS หลายปัจจัย และการตรวจสอบสิทธิ์ผู้ให้บริการข้อมูลประจำตัวบุคคลที่สาม (เช่น Google)
  • ดูและแก้ไขผู้ใช้จำลอง
  • ต้นแบบระบบตรวจสอบโทเค็นแบบกำหนดเอง
  • ตรวจสอบข้อความที่เกี่ยวข้องกับการรับรองความถูกต้องในแท็บบันทึก UI ของโปรแกรมจำลอง

เลือกโปรเจ็กต์ Firebase

Firebase Local Emulator Suite จำลองผลิตภัณฑ์สำหรับโปรเจ็กต์ Firebase เดียว

ในการเลือกโปรเจ็กต์ที่จะใช้ ก่อนที่คุณจะเริ่มอีมูเลเตอร์ ใน CLI ให้รัน firebase use ในไดเร็กทอรีการทำงานของคุณ หรือคุณสามารถส่ง --project แฟล็กไปยังแต่ละคำสั่งอีมูเลเตอร์

Local Emulator Suite รองรับการจำลองโปรเจ็กต์ Firebase จริง และโปรเจ็กต์ สาธิต

ประเภทโครงการ คุณสมบัติ ใช้กับอีมูเลเตอร์
จริง

โปรเจ็กต์ Firebase จริงคือโปรเจ็กต์ที่คุณสร้างและกำหนดค่า (ส่วนใหญ่ผ่านคอนโซล Firebase)

โปรเจ็กต์จริงมีทรัพยากรจริง เช่น อินสแตนซ์ฐานข้อมูล ที่เก็บข้อมูลของพื้นที่เก็บข้อมูล ฟังก์ชัน หรือทรัพยากรอื่นๆ ที่คุณตั้งค่าสำหรับโปรเจ็กต์ Firebase นั้น

เมื่อทำงานกับโปรเจ็กต์ Firebase จริง คุณสามารถเรียกใช้โปรแกรมจำลองสำหรับผลิตภัณฑ์ที่รองรับใดๆ หรือทั้งหมดได้

สำหรับผลิตภัณฑ์ใดๆ ที่คุณไม่ได้จำลอง แอปและโค้ดของคุณจะโต้ตอบกับทรัพยากรที่ใช้งาน อยู่ (อินสแตนซ์ฐานข้อมูล ที่เก็บข้อมูล ฟังก์ชัน ฯลฯ)

การสาธิต

โปรเจ็กต์ Firebase สาธิตไม่มีการกำหนดค่า Firebase จริง และไม่มีทรัพยากรจริง โครงการเหล่านี้มักจะเข้าถึงได้ผ่าน codelabs หรือบทช่วยสอนอื่นๆ

รหัสโครงการสำหรับโครงการสาธิตมี demo- หน้าการสาธิต

เมื่อทำงานกับโปรเจ็กต์สาธิต Firebase แอปและโค้ดของคุณจะโต้ตอบกับอีมูเลเตอร์ เท่านั้น หากแอปของคุณพยายามโต้ตอบกับทรัพยากรที่ไม่ได้ใช้งานโปรแกรมจำลอง โค้ดนั้นจะล้มเหลว

เราขอแนะนำให้คุณใช้โปรเจ็กต์สาธิตในทุกที่ที่ทำได้ ประโยชน์รวมถึง:

  • ตั้งค่าได้ง่ายขึ้น เนื่องจากคุณสามารถเรียกใช้อีมูเลเตอร์ได้โดยไม่ต้องสร้างโปรเจ็กต์ Firebase เลย
  • ความปลอดภัยที่เข้มงวดยิ่งขึ้น เนื่องจากหากรหัสของคุณเรียกใช้ทรัพยากรที่ไม่ได้จำลอง (การผลิต) โดยไม่ได้ตั้งใจ จะไม่มีโอกาสเปลี่ยนแปลงข้อมูล การใช้งาน และการเรียกเก็บเงิน
  • การสนับสนุนออฟไลน์ที่ดีขึ้น เนื่องจากไม่จำเป็นต้องเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดการกำหนดค่า SDK ของคุณ

เครื่องมือแอปของคุณเพื่อพูดคุยกับอีมูเลเตอร์

SDK สำหรับ Android, iOS และเว็บ

ตั้งค่าคอนฟิกูเรชันในแอปหรือคลาสทดสอบเพื่อโต้ตอบกับโปรแกรมจำลองการตรวจสอบสิทธิ์ดังนี้

Android
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
Swift
Auth.auth().useEmulator(withHost:"localhost", port:9099)

Web version 9

import { getAuth, connectAuthEmulator } from "firebase/auth";

const auth = getAuth();
connectAuthEmulator(auth, "http://localhost:9099");

Web version 8

const auth = firebase.auth();
auth.useEmulator("http://localhost:9099");

ไม่จำเป็นต้องตั้งค่าเพิ่มเติมเพื่อสร้างต้นแบบและทดสอบการโต้ตอบระหว่าง Authentication และ Cloud Functions หรือ Firebase Security Rules for Cloud Firestore หรือ Realtime Database เมื่อมีการกำหนดค่าโปรแกรมจำลองการตรวจสอบสิทธิ์และโปรแกรมจำลองอื่นๆ กำลังทำงาน โปรแกรมจำลองจะทำงานร่วมกันโดยอัตโนมัติ

Admin SDKs

Firebase Admin SDK จะเชื่อมต่อกับโปรแกรมจำลองการตรวจสอบสิทธิ์โดยอัตโนมัติเมื่อตั้งค่าตัวแปรสภาพแวดล้อม FIREBASE_AUTH_EMULATOR_HOST

export FIREBASE_AUTH_EMULATOR_HOST="localhost:9099"

โปรดทราบว่าโปรแกรมจำลอง Cloud Functions จะรับรู้ถึงโปรแกรมจำลองการตรวจสอบสิทธิ์โดยอัตโนมัติ คุณจึงข้ามขั้นตอนนี้ได้เมื่อทดสอบการผสานการทำงานระหว่าง Cloud Functions และโปรแกรมจำลองการตรวจสอบสิทธิ์ ตัวแปรสภาพแวดล้อมจะถูกตั้งค่าโดยอัตโนมัติสำหรับ Admin SDK ใน Cloud Functions

ด้วยชุดตัวแปรสภาพแวดล้อม Firebase Admin SDK จะยอมรับโทเค็น ID ที่ไม่ได้ลงนามและคุกกี้เซสชันที่ออกโดยโปรแกรมจำลองการตรวจสอบสิทธิ์ (ผ่าน verifyIdToken และ createSessionCookie ตามลำดับ) เพื่ออำนวยความสะดวกในการพัฒนาและการทดสอบในพื้นที่ โปรด อย่า ตั้งค่าตัวแปรสภาพแวดล้อมในการผลิต

หากคุณต้องการให้โค้ด Admin SDK เชื่อมต่อกับโปรแกรมจำลองที่ใช้ร่วมกันที่ทำงานในสภาพแวดล้อมอื่น คุณจะต้องระบุ รหัสโปรเจ็กต์เดียวกันกับที่คุณตั้งค่าโดยใช้ Firebase CLI คุณสามารถส่งรหัสโปรเจ็กต์เพื่อ initializeApp แอปโดยตรงหรือตั้งค่าตัวแปรสภาพแวดล้อม GCLOUD_PROJECT

Node.js ผู้ดูแลระบบ SDK
admin.initializeApp({ projectId: "your-project-id" });
ตัวแปรสภาพแวดล้อม
export GCLOUD_PROJECT="your-project-id"

ID Tokens

ด้วยเหตุผลด้านความปลอดภัย โปรแกรมจำลองการตรวจสอบสิทธิ์จะออกโทเค็น ID ที่ ไม่ได้ลงนาม ซึ่งยอมรับโดยโปรแกรมจำลอง Firebase อื่นๆ หรือ Firebase Admin SDK เมื่อ กำหนดค่า . โทเค็นเหล่านี้จะถูกปฏิเสธโดยบริการ Firebase ที่ใช้งานจริงหรือ Firebase Admin SDK ที่ทำงานในโหมดใช้งานจริง (เช่น ลักษณะการทำงานเริ่มต้นโดยไม่มีขั้นตอนการตั้งค่าที่อธิบายไว้ข้างต้น)

เริ่มโปรแกรมจำลอง

คุณสามารถใช้โปรแกรมจำลองการตรวจสอบสิทธิ์แบบโต้ตอบผ่าน Emulator Suite UI และไม่โต้ตอบผ่านอินเทอร์เฟซ REST ในเครื่อง ส่วนต่อไปนี้ครอบคลุมกรณีการใช้งานแบบโต้ตอบและไม่โต้ตอบ

ในการเริ่มต้นโปรแกรมจำลองการตรวจสอบสิทธิ์ อินเทอร์เฟซ REST และ Emulator Suite UI ให้ดำเนินการ:

firebase emulators:start

สำหรับ การตรวจสอบแบบไม่ระบุตัวตน แอปของคุณสามารถใช้ตรรกะการลงชื่อเข้าใช้สำหรับแพลตฟอร์มของคุณ ( iOS , Android , เว็บ )

สำหรับ การตรวจสอบสิทธิ์อีเมล/รหัสผ่าน คุณสามารถเริ่มสร้างต้นแบบโดยเพิ่มบัญชีผู้ใช้ไปยังโปรแกรมจำลองการตรวจสอบสิทธิ์จากแอปของคุณโดยใช้วิธีการ Authentication SDK หรือโดยใช้ Emulator Suite UI

  1. ใน Emulator Suite UI ให้คลิกแท็บ Authentication
  2. คลิกปุ่ม เพิ่มผู้ใช้
  3. ทำตามวิซาร์ดการสร้างบัญชีผู้ใช้โดยกรอกข้อมูลในฟิลด์การตรวจสอบสิทธิ์อีเมล

เมื่อสร้างผู้ใช้ทดสอบแล้ว แอปของคุณสามารถลงชื่อเข้าใช้และออกจากระบบของผู้ใช้ด้วยตรรกะ SDK สำหรับแพลตฟอร์มของคุณ ( iOS , Android , เว็บ )

สำหรับการทดสอบการยืนยัน/ลงชื่อเข้าใช้อีเมลด้วยโฟลว์ลิงก์อีเมล โปรแกรมจำลองจะพิมพ์ URL ไปยังเทอร์มินัลที่ดำเนินการ firebase emulators:start

i  To verify the email address customer@ex.com, follow this link:
http://localhost: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://localhost:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD

การทดสอบแบบไม่โต้ตอบ

แทนที่จะใช้ UI ของ Emulator Suite หรือรหัสไคลเอ็นต์เพื่อจัดการบัญชีผู้ใช้อีเมล/รหัสผ่าน คุณสามารถเขียนสคริปต์การตั้งค่าการทดสอบที่เรียกใช้ REST API เพื่อสร้างและลบบัญชีผู้ใช้ และดึงรหัสยืนยันอีเมลนอกแบนด์เพื่อเติมข้อมูลการยืนยันอีเมลของโปรแกรมจำลอง URL. สิ่งนี้ทำให้แพลตฟอร์มและโค้ดทดสอบแยกจากกัน และช่วยให้คุณทดสอบแบบไม่โต้ตอบได้

สำหรับขั้นตอนการทดสอบอีเมลและรหัสผ่านแบบไม่โต้ตอบ ลำดับโดยทั่วไปจะเป็นดังนี้

  1. สร้างผู้ใช้ด้วย ปลายทางการลงชื่อสมัครใช้การตรวจสอบสิทธิ์ REST
  2. ลงชื่อเข้าใช้ผู้ใช้โดยใช้อีเมลและรหัสผ่านเพื่อทำการทดสอบ
  3. หากใช้ได้กับการทดสอบของคุณ ให้ดึงรหัสยืนยันอีเมลนอกวงที่มีจากจุด สิ้นสุด REST เฉพาะโปรแกรมจำลอง
  4. ล้างข้อมูลบันทึกของผู้ใช้ด้วย จุดสิ้นสุด REST เฉพาะของโปรแกรมจำลอง เพื่อล้างข้อมูล

การยืนยันตัวตนทางโทรศัพท์/SMS จำลอง

สำหรับการตรวจสอบสิทธิ์ทางโทรศัพท์ โปรแกรมจำลอง Auth ไม่รองรับ:

  • โฟลว์ reCAPTCHA และ APN เมื่อกำหนดค่าให้โต้ตอบกับโปรแกรมจำลองแล้ว SDK ไคลเอ็นต์จะปิดใช้งานวิธีการตรวจสอบเหล่านี้ในลักษณะเดียวกับที่อธิบายไว้สำหรับการทดสอบการรวม ( iOS , Android , เว็บ )
  • ทดสอบหมายเลขโทรศัพท์ด้วยรหัสที่กำหนดค่าไว้ล่วงหน้าในคอนโซล Firebase

ไม่เช่นนั้น ในแง่ของรหัสไคลเอ็นต์ โฟลว์การตรวจสอบสิทธิ์โทรศัพท์/SMS จะเหมือนกับขั้นตอนที่อธิบายไว้สำหรับเวอร์ชันที่ใช้งานจริง ( iOS , Android , เว็บ )

การใช้ UI ของ Emulator Suite:

  1. ใน Emulator Suite UI ให้คลิกแท็บ Authentication
  2. คลิกปุ่ม เพิ่มผู้ใช้
  3. ทำตามวิซาร์ดการสร้างบัญชีผู้ใช้โดยกรอกข้อมูลในฟิลด์การตรวจสอบสิทธิ์ทางโทรศัพท์

อย่างไรก็ตาม สำหรับขั้นตอนการตรวจสอบสิทธิ์ทางโทรศัพท์ โปรแกรมจำลองจะไม่ทริกเกอร์การส่งข้อความใดๆ เนื่องจากการติดต่อผู้ให้บริการอยู่นอกขอบเขตและไม่เหมาะสำหรับการทดสอบในพื้นที่! แต่อีมูเลเตอร์จะพิมพ์โค้ดที่จะส่งผ่าน SMS ไปยังเทอร์มินัลเดียวกันกับที่คุณรัน firebase emulators:start ; ป้อนรหัสนี้ลงในแอปเพื่อจำลองผู้ใช้ที่กำลังตรวจสอบข้อความ

การทดสอบแบบไม่โต้ตอบ

สำหรับการทดสอบการตรวจสอบสิทธิ์โทรศัพท์แบบไม่โต้ตอบ ให้ใช้ REST API ตัวจำลองการตรวจสอบสิทธิ์เพื่อดึงรหัส SMS ที่พร้อมใช้งาน โปรดทราบว่าโค้ดจะแตกต่างกันทุกครั้งที่คุณเริ่มโฟลว์

ลำดับทั่วไปมีดังนี้

  1. โทรหาแพลตฟอร์ม signInWithPhoneNumber เพื่อเริ่มกระบวนการตรวจสอบ
  2. ดึงรหัสยืนยันโดยใช้ จุดสิ้นสุด REST เฉพาะโปรแกรมจำลอง
  3. โทร confirmationResult.confirm(code) ตามปกติด้วยรหัสยืนยัน

SMS หลายปัจจัย

โปรแกรมจำลองการตรวจสอบสิทธิ์รองรับการสร้างต้นแบบและการทดสอบโฟลว์การตรวจสอบสิทธิ์แบบหลายปัจจัยทาง SMS (MFA) ที่มีให้ใช้งานจริงสำหรับ iOS , Android และ เว็บ

เมื่อคุณเพิ่มผู้ใช้จำลองลงในอีมูเลเตอร์ คุณสามารถเปิดใช้งาน MFA และกำหนดค่าหมายเลขโทรศัพท์อย่างน้อยหนึ่งหมายเลขที่จะส่งข้อความ SMS ปัจจัยที่สอง ข้อความจะถูกส่งออกไปยังเทอร์มินัลเดียวกันกับที่คุณรัน firebase emulators:start และพร้อมใช้งานจากอินเทอร์เฟซ REST

การรับรองความถูกต้องของผู้ให้บริการข้อมูลประจำตัวบุคคลที่สาม (IDP) ที่จำลองขึ้น

โปรแกรมจำลองการตรวจสอบสิทธิ์ช่วยให้คุณทดสอบโฟลว์การตรวจสอบสิทธิ์บุคคลที่สามจำนวนมากใน iOS, Android หรือเว็บแอปโดยไม่มีการเปลี่ยนแปลงจากโค้ดที่ใช้งานจริง สำหรับตัวอย่างขั้นตอนการตรวจสอบสิทธิ์ โปรดดูเอกสารประกอบสำหรับ ผู้ให้บริการและแพลตฟอร์มต่างๆ ที่คุณสามารถใช้ในแอปของคุณ

โดยทั่วไป คุณสามารถใช้ Firebase SDK เพื่อตรวจสอบสิทธิ์ด้วยวิธีใดวิธีหนึ่งจากสองวิธีต่อไปนี้

  • แอปของคุณอนุญาตให้ SDK จัดการกระบวนการทั้งหมดตั้งแต่ต้นจนจบ รวมถึงการโต้ตอบทั้งหมดกับผู้ให้บริการ IDP บุคคลที่สามเพื่อดึงข้อมูลรับรอง
  • แอพของคุณดึงข้อมูลประจำตัวจากผู้ให้บริการบุคคลที่สามโดยใช้ SDK ของฝ่ายนั้นและส่งข้อมูลรับรองเหล่านั้นไปยัง Authentication SDK

ตรวจสอบลิงก์เอกสารด้านบนอีกครั้ง และตรวจดูว่าคุณคุ้นเคยกับขั้นตอนใด - จัดการ Firebase SDK เทียบกับการดึงข้อมูลรับรองด้วยตนเอง - คุณต้องการใช้ โปรแกรมจำลองการตรวจสอบสิทธิ์รองรับการทดสอบทั้งสองวิธี

การทดสอบโฟลว์ IDP ที่ขับเคลื่อนโดย Firebase SDK

หากแอปของคุณใช้ขั้นตอนแบบ end-to-end ของ Firebase SDK เช่น OAuthProvider สำหรับการลงชื่อเข้าใช้ด้วย Microsoft, GitHub หรือ Yahoo สำหรับการทดสอบเชิงโต้ตอบ โปรแกรมจำลองการตรวจสอบสิทธิ์จะให้บริการเวอร์ชันท้องถิ่นของหน้าลงชื่อเข้าใช้ที่เกี่ยวข้องเพื่อช่วยคุณทดสอบ การตรวจสอบสิทธิ์จากเว็บแอปที่เรียกใช้ signinWithPopup หรือ signInWithRedirect หน้าลงชื่อเข้าใช้ที่แสดงในเครื่องนี้ยังปรากฏในแอปมือถือ ซึ่งแสดงโดยไลบรารี webview ของแพลตฟอร์มของคุณ

อีมูเลเตอร์สร้างจำลองบัญชีผู้ใช้และข้อมูลประจำตัวของบุคคลที่สามตามความจำเป็นเมื่อโฟลว์ดำเนินต่อไป

การทดสอบโฟลว์ IDP ด้วยการดึงข้อมูลรับรองด้วยตนเอง

หากคุณใช้เทคนิคการลงชื่อเข้าใช้ "ด้วยตนเอง" และเรียกใช้เมธอด signInWithCredentials ของแพลตฟอร์ม แอปของคุณจะขอลงชื่อเข้าใช้จากบุคคลที่สามจริงและเรียกข้อมูลประจำตัวของบุคคลที่สามที่แท้จริงตามปกติ

โปรดทราบว่าอีมูเลเตอร์รองรับเฉพาะการตรวจสอบสิทธิ์ signInWithCredential สำหรับข้อมูลรับรองที่ดึงมาจาก Google Sign-In, Apple และผู้ให้บริการอื่นๆ ที่ใช้โทเค็น ID ที่ใช้งานเป็น JSON Web Tokens (JWT) ไม่รองรับโทเค็นการเข้าถึง (เช่น ที่จัดหาโดย Facebook หรือ Twitter ซึ่งไม่ใช่ JWT) ส่วนถัดไปจะกล่าวถึงทางเลือกอื่นในกรณีเหล่านี้

การทดสอบแบบไม่โต้ตอบ

วิธีหนึ่งในการทดสอบแบบไม่โต้ตอบคือการทำให้ผู้ใช้คลิกบนหน้าลงชื่อเข้าใช้ที่โปรแกรมจำลองแสดงโดยอัตโนมัติ สำหรับเว็บแอป ให้ใช้อินเทอร์เฟซการควบคุม เช่น WebDriver สำหรับอุปกรณ์เคลื่อนที่ ให้ใช้เครื่องมือทดสอบ UI จากแพลตฟอร์มของคุณ เช่น Espresso หรือ Xcode

อีกวิธีหนึ่ง คุณสามารถอัปเดตรหัสของคุณเพื่อใช้ signInWithCredential (เช่น ในสาขาโค้ด) และใช้โฟลว์การตรวจสอบสิทธิ์โทเค็นด้วยโทเค็น ID จำลองสำหรับบัญชีแทนข้อมูลประจำตัวจริง

  1. เชื่อมต่อใหม่หรือแสดงความคิดเห็นในส่วนของรหัสของคุณที่ดึง idTokens จาก IDP สิ่งนี้ทำให้ไม่จำเป็นต้องป้อนชื่อผู้ใช้และรหัสผ่านจริงในระหว่างการทดสอบของคุณ และลดการทดสอบของคุณจากโควต้า API และขีดจำกัดอัตราที่ IDP
  2. ประการที่สอง ใช้สตริง JSON ตามตัวอักษรแทนโทเค็นสำหรับ signInWithCredential คุณสามารถเปลี่ยนรหัสเป็น:
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') หรือ ID ผู้ให้บริการอื่นๆ ที่คุณต้องการจำลอง

จำลองการตรวจสอบโทเค็นแบบกำหนดเอง

โปรแกรมจำลองการตรวจสอบสิทธิ์จัดการการรับรองความถูกต้องด้วย JSON Web Token แบบกำหนดเองโดยใช้การเรียกใช้เมธอด signInWithCustomToken บนแพลตฟอร์มที่รองรับ ดังที่อธิบายไว้ใน เอกสารประกอบการพิสูจน์ตัว ตนจริง

Authentication emulator แตกต่างจากการผลิตอย่างไร

โปรแกรมจำลองการตรวจสอบสิทธิ์ Firebase จำลองคุณลักษณะหลายอย่างของผลิตภัณฑ์ที่ใช้งานจริง อย่างไรก็ตาม เนื่องจากระบบการตรวจสอบสิทธิ์ใดๆ ก็ตามอาศัยการรักษาความปลอดภัยอย่างมากในหลายระดับ (อุปกรณ์ ผู้ให้บริการบุคคลที่สาม Firebase ฯลฯ) จึงเป็นเรื่องยากสำหรับโปรแกรมจำลองที่จะสร้างโฟลว์ทั้งหมดขึ้นมาใหม่อย่างถูกต้อง

คลาวด์ IAM

Firebase Emulator Suite จะไม่พยายามทำซ้ำหรือเคารพพฤติกรรมที่เกี่ยวข้องกับ IAM สำหรับการรัน อีมูเลเตอร์ปฏิบัติตามกฎความปลอดภัยของ Firebase ที่มีให้ แต่ในสถานการณ์ที่ปกติแล้ว IAM จะถูกใช้ ตัวอย่างเช่น ในการตั้งค่า Cloud Functions ที่เรียกใช้บัญชีบริการและการอนุญาต อีมูเลเตอร์จะไม่สามารถกำหนดค่าได้ และจะใช้บัญชีที่พร้อมใช้งานทั่วโลกบนเครื่องนักพัฒนาของคุณ คล้ายกับการรันสคริปต์ในเครื่องโดยตรง

เนื่องจากบนแพลตฟอร์มมือถือ การลงชื่อเข้าใช้ลิงก์อีเมลอาศัย Firebase Dynamic Links ลิงก์ดังกล่าวทั้งหมดจะเปิดขึ้นบนแพลตฟอร์มเว็บ (อุปกรณ์เคลื่อนที่) แทน

การลงชื่อเข้าใช้บุคคลที่สาม

สำหรับขั้นตอนการลงชื่อเข้าใช้ของบุคคลที่สาม การตรวจสอบสิทธิ์ Firebase จะใช้ข้อมูลรับรองที่ปลอดภัยจากผู้ให้บริการบุคคลที่สาม เช่น Twitter และ Github

ข้อมูลประจำตัวจริงจากผู้ให้บริการ OpenID Connect เช่น Google และ Apple ได้รับการยอมรับจากโปรแกรมจำลองการตรวจสอบสิทธิ์ ไม่รองรับข้อมูลรับรองจากผู้ให้บริการที่ไม่ใช่ OpenID Connect

อีเมล / SMS ลงชื่อเข้าใช้

ในแอปที่ใช้งานจริง โฟลว์การลงชื่อเข้าใช้อีเมลและ SMS เกี่ยวข้องกับการดำเนินการแบบอะซิงโครนัสซึ่งผู้ใช้ตรวจสอบข้อความที่ได้รับและป้อนรหัสล็อกอินลงในอินเทอร์เฟซการลงชื่อเข้าใช้ โปรแกรมจำลองการตรวจสอบสิทธิ์จะไม่ส่งอีเมลหรือข้อความ SMS ใดๆ แต่ตามที่อธิบายไว้ ข้างต้น โปรแกรมจะสร้างรหัสการเข้าสู่ระบบและส่งออกไปยังเครื่องปลายทางเพื่อใช้ในการทดสอบ

อีมูเลเตอร์ไม่รองรับความสามารถในการกำหนดหมายเลขโทรศัพท์ทดสอบด้วยรหัสล็อกอินคงที่ ซึ่งสามารถทำได้โดยใช้คอนโซล Firebase

การตรวจสอบโทเค็นที่กำหนดเอง

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

อัตราจำกัด/ต่อต้านการละเมิด

ตัวจำลองการตรวจสอบสิทธิ์ไม่ทำซ้ำคุณสมบัติการจำกัดอัตราการผลิตหรือต่อต้านการละเมิด

อะไรต่อไป?

  • สำหรับชุดวิดีโอที่ได้รับการดูแลจัดการและตัวอย่างวิธีการโดยละเอียด ให้ทำตาม เพลย์ลิสต์การฝึกอบรม Firebase Emulators

  • เนื่องจากฟังก์ชันที่ทริกเกอร์เป็นการผสานรวมกับการตรวจสอบสิทธิ์โดยทั่วไป เรียนรู้เพิ่มเติมเกี่ยวกับ Cloud Functions for Firebase emulator ที่ ฟังก์ชัน Run ใน เครื่อง