คุณส่งสถานะผ่าน URL ดำเนินการต่อได้เมื่อส่งการดำเนินการทางอีเมลเพื่อขอรหัสผ่าน รีเซ็ตหรือยืนยันอีเมลของผู้ใช้ ซึ่งทำให้ผู้ใช้สามารถ กลับไปยังแอปหลังการดำเนินการเสร็จสิ้น นอกจากนี้ คุณสามารถระบุ จะจัดการลิงก์การดำเนินการของอีเมลโดยตรงจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่หรือไม่ในเมื่อ แทนที่จะเป็นหน้าเว็บ
ซึ่งจะเป็นประโยชน์อย่างยิ่งในสถานการณ์ทั่วไปต่อไปนี้
ผู้ใช้ที่ไม่ได้ลงชื่อเข้าสู่ระบบอยู่ในขณะนี้ อาจพยายามเข้าถึงเนื้อหาที่ กำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ แต่ผู้ใช้อาจลืม รหัสผ่าน จึงทริกเกอร์ขั้นตอนการรีเซ็ตรหัสผ่าน ในตอนท้ายของ ผู้ใช้ต้องการกลับไปที่ส่วนของแอปที่ตนอยู่ พยายามเข้าถึง
แอปพลิเคชันอาจเสนอการเข้าถึงบัญชีที่ได้รับการยืนยันแล้วเท่านั้น สำหรับ เช่น แอปจดหมายข่าวอาจกำหนดให้ผู้ใช้ยืนยันอีเมลก่อน การสมัครใช้บริการ ผู้ใช้จะดำเนินการตามขั้นตอนการยืนยันอีเมลและคาดหวังว่า ที่จะส่งคืนไปยังแอปเพื่อสมัครใช้บริการให้เสร็จสมบูรณ์
โดยทั่วไป เมื่อผู้ใช้เริ่มรีเซ็ตรหัสผ่านหรือขั้นตอนการยืนยันอีเมล แอป Apple ที่คาดหวังว่าจะดำเนินขั้นตอนให้เสร็จสมบูรณ์ภายในแอป ความสามารถในการ สถานะ Pass ผ่านทาง URL ดำเนินการต่อจะช่วยให้การดำเนินการนี้เป็นไปได้
ความสามารถในการส่งสถานะผ่าน URL ดำเนินการต่อเป็นฟีเจอร์ที่มีประสิทธิภาพที่ Firebase Auth ให้บริการและช่วยปรับปรุงประสบการณ์ของผู้ใช้ได้อย่างมาก
การส่งสถานะ/URL ต่อในการดำเนินการของอีเมล
ในการส่ง URL ต่อไปอย่างปลอดภัย โดเมนของ URL จะต้อง อยู่ในรายการที่อนุญาตในคอนโซล Firebase ซึ่งทำได้ในส่วนการตรวจสอบสิทธิ์โดยการเพิ่มโดเมนนี้ลงในส่วน รายการโดเมนที่ได้รับอนุญาตใต้แท็บวิธีการลงชื่อเข้าใช้หากยังไม่มี
ต้องระบุอินสแตนซ์ ActionCodeSettings
เมื่อส่ง
อีเมลรีเซ็ตรหัสผ่านหรืออีเมลยืนยัน อินเทอร์เฟซนี้ใช้
พารามิเตอร์ต่อไปนี้
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
url |
สตริง | ตั้งค่าลิงก์ (URL สถานะ/ดำเนินการต่อ) ซึ่งมีความหมายต่างกัน ในบริบทต่างๆ
|
iOSBundleId |
สตริง | ตั้งค่ารหัสชุด การดำเนินการนี้จะพยายามเปิดลิงก์ในแอป Apple หาก ติดตั้งแล้ว ต้องลงทะเบียนแอปในคอนโซล หากไม่ใช่ มีการระบุรหัสชุด ค่าของช่องนี้กำหนดเป็นรหัสชุด Bundle หลักของแอป |
androidPackageName |
สตริง | ตั้งชื่อแพ็กเกจ Android การดำเนินการนี้จะพยายามเปิดลิงก์ใน แอป Android ถ้าติดตั้งไว้ |
androidInstallApp |
บูลีน | ระบุว่าจะติดตั้งแอป Android หากอุปกรณ์รองรับหรือไม่ และแอปยังไม่ได้ติดตั้ง หากฟิลด์นี้ไม่มี แพ็กเกจName มีข้อผิดพลาดเกิดขึ้นเนื่องจากอธิบายว่าชื่อแพ็กเกจต้องเป็น ที่ให้ไว้พร้อมกับฟิลด์นี้ |
androidMinimumVersion |
สตริง | เวอร์ชันต่ำสุดของแอปที่ขั้นตอนนี้รองรับ ถ้า ขั้นต่ำเวอร์ชันที่ระบุไว้ และติดตั้งแอปเวอร์ชันเก่าแล้ว ระบบจะนำผู้ใช้ไปยัง Play Store เพื่ออัปเกรดแอป แอป Android ต้องลงทะเบียนในคอนโซล |
handleCodeInApp |
บูลีน | ลิงก์การดำเนินการกับอีเมลจะเปิดขึ้นในแอปบนอุปกรณ์เคลื่อนที่หรือบนเว็บ ลิงก์ก่อน ระบบตั้งค่าเริ่มต้นไว้เป็น "เท็จ" เมื่อตั้งค่าเป็น "จริง" ลิงก์โค้ดการกระทำ ระบบจะส่งเป็น Universal Link หรือ Android App Link และจะเปิดขึ้น ของแอปหากติดตั้งไว้ ในกรณีที่เป็นเท็จ โค้ดจะถูกส่งไปยัง วิดเจ็ตเว็บก่อนแล้วจึงดำเนินการต่อจะเปลี่ยนเส้นทางไปยังแอปหาก ติดตั้งไว้แล้ว |
dynamicLinkDomain |
สตริง | ตั้งค่าโดเมนลิงก์แบบไดนามิก (หรือโดเมนย่อย) ที่จะใช้สำหรับลิงก์ปัจจุบัน หากจะเปิดโดยใช้ลิงก์แบบไดนามิกของ Firebase เป็นแบบไดนามิกหลายรายการ โดเมนลิงก์สามารถกำหนดค่าได้ต่อโปรเจ็กต์ ฟิลด์นี้มีฟิลด์ ความสามารถในการเลือกอย่างชัดเจน หากไม่ได้ระบุไว้ โดเมนแรก โดยค่าเริ่มต้น |
ตัวอย่างต่อไปนี้จะแสดงวิธีส่งลิงก์สำหรับการยืนยันอีเมลที่
จะเปิดในแอปบนอุปกรณ์เคลื่อนที่ก่อนเป็นลิงก์แบบไดนามิกของ Firebase โดยใช้
โดเมนลิงก์แบบไดนามิก example.page.link
(แอป iOS com.example.ios
หรือแอป Android com.example.android
ซึ่งแอป
จะติดตั้งหากยังไม่ได้ติดตั้ง และเวอร์ชันขั้นต่ำคือ 12
)
Deep Link จะมีเพย์โหลด URL ดำเนินการต่อ
https://www.example.com/?email=user@example.com
final user = FirebaseAuth.instance.currentUser;
final actionCodeSettings = ActionCodeSettings(
url: "http://www.example.com/verify?email=${user?.email}",
iOSBundleId: "com.example.ios",
androidPackageName: "com.example.android",
);
await user?.sendEmailVerification(actionCodeSettings);
การกำหนดค่าลิงก์แบบไดนามิกของ Firebase
การตรวจสอบสิทธิ์ Firebase ใช้ลิงก์แบบไดนามิกของ Firebase เมื่อส่ง ซึ่งควรเปิดในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ หากต้องการใช้ฟีเจอร์นี้ คุณต้องกำหนดค่าลิงก์แบบไดนามิกในคอนโซล Firebase
เปิดใช้ลิงก์แบบไดนามิกของ Firebase:
ในคอนโซล Firebase ให้เปิดส่วนลิงก์แบบไดนามิก
หากคุณยังไม่ได้ยอมรับข้อกำหนดลิงก์แบบไดนามิกและสร้างลิงก์แบบไดนามิกแล้ว โดเมน ให้ดำเนินการในขณะนี้
หากคุณสร้างโดเมนลิงก์แบบไดนามิกไว้แล้ว โปรดสังเกตโดเมนนั้น ลิงก์แบบไดนามิก โดเมนมักจะมีลักษณะดังตัวอย่างต่อไปนี้
example.page.link
คุณจะต้องใช้ค่านี้เมื่อกำหนดค่าแอป Apple หรือ Android เป็น สกัดกั้นลิงก์ขาเข้า
การกำหนดค่าแอปพลิเคชัน Android
- หากคุณวางแผนที่จะจัดการลิงก์เหล่านี้จากแอปพลิเคชัน Android ของคุณ ต้องระบุชื่อแพ็กเกจ Android ในคอนโซล Firebase การตั้งค่าโปรเจ็กต์ นอกจากนี้ SHA-1 และ SHA-256 ของแอปพลิเคชัน ต้องระบุใบรับรอง
- คุณจะต้องกำหนดค่าตัวกรอง Intent สำหรับ Deep Link ใน ไฟล์ AndroidManifest.xml ของคุณ
- สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การรับวิธีการเกี่ยวกับลิงก์แบบไดนามิกของ Android
การกำหนดค่าแอปพลิเคชัน Apple
- หากคุณวางแผนที่จะจัดการลิงก์เหล่านี้จากใบสมัครของคุณ ต้องระบุรหัสชุดในคอนโซล Firebase การตั้งค่าโปรเจ็กต์ นอกจากนี้ รหัส App Store และนักพัฒนา Apple และต้องระบุรหัสทีมด้วย
- คุณยังต้องกำหนดค่าโดเมน Universal Link ของ FDL เป็น โดเมนที่เชื่อมโยงในความสามารถของแอปพลิเคชัน
- หากคุณวางแผนที่จะเผยแพร่แอปพลิเคชันไปยัง iOS เวอร์ชัน 8 และต่ำกว่า คุณจะต้องตั้งค่ารหัสชุดเป็นรูปแบบที่กำหนดเองสำหรับ URL
- สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การรับวิธีการลิงก์แบบไดนามิกสำหรับแพลตฟอร์ม Apple
จัดการการดำเนินการกับอีเมลในเว็บแอปพลิเคชัน
คุณสามารถระบุได้ว่าต้องการจัดการลิงก์โค้ดการกระทำจากเว็บหรือไม่
แอปพลิเคชันก่อน แล้วจึงเปลี่ยนเส้นทางไปยังหน้าเว็บหรือแอปพลิเคชันบนอุปกรณ์เคลื่อนที่อื่น
หลังจากทำสำเร็จแล้ว หากมีแอปพลิเคชันบนมือถือที่พร้อมให้บริการ
ซึ่งทำโดยการตั้งค่า handleCodeInApp
เป็น false
ในออบเจ็กต์ ActionCodeSettings
ขณะที่
รหัสชุด
หรือชื่อแพ็กเกจ Android หรือไม่ก็ได้ การให้
ชื่อจะทำให้ผู้ใช้
เพื่อเปลี่ยนเส้นทางกลับไปยังแอปที่ระบุเมื่อกรอกรหัสการดำเนินการกับอีเมลแล้ว
URL ของเว็บที่ใช้ที่นี่คือ URL ที่กำหนดค่าไว้ในเทมเพลตการดำเนินการกับอีเมล ระบบจะจัดสรรค่าเริ่มต้นให้กับโปรเจ็กต์ทั้งหมด โปรดดู การกำหนดค่าเครื่องจัดการอีเมลเพื่อเรียนรู้เพิ่มเติม วิธีปรับแต่งเครื่องจัดการการดำเนินการอีเมล
ในกรณีนี้ ลิงก์ภายในพารามิเตอร์การค้นหา continueURL
จะ
ลิงก์ FDL ซึ่งมีเพย์โหลดเป็น URL
ที่ระบุไว้ใน ActionCodeSettings
ออบเจ็กต์ ในขณะที่คุณสกัดกั้นและจัดการลิงก์ขาเข้าจากแอปได้
โดยไม่ต้องมีการขึ้นต่อกันใดๆ เพิ่มเติม เราขอแนะนำให้ใช้ไลบรารีของไคลเอ็นต์ FDL เพื่อ
แยกวิเคราะห์ Deep Link ให้คุณ
เมื่อจัดการกับการทำงานของอีเมล เช่น การยืนยันอีเมล รหัสการดำเนินการจาก
ต้องแยกวิเคราะห์พารามิเตอร์การค้นหา oobCode
รายการจาก Deep Link แล้วนำไปใช้
ผ่าน applyActionCode
เพื่อให้การเปลี่ยนแปลงมีผล เช่น ต้องยืนยันอีเมล
การจัดการการดำเนินการกับอีเมลในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
คุณสามารถระบุว่าต้องการจัดการลิงก์โค้ดการกระทำภายใน
แอปพลิเคชันบนอุปกรณ์เคลื่อนที่ก่อนหากมีการติดตั้งแล้ว สำหรับแอปพลิเคชัน Android
คุณยังสามารถระบุผ่าน androidInstallApp
ที่
จะต้องติดตั้งแอปหากอุปกรณ์รองรับ และยังไม่ได้ติดตั้ง
ติดตั้งไว้แล้ว
หากคลิกลิงก์จากอุปกรณ์ที่ไม่รองรับอุปกรณ์เคลื่อนที่
แอปพลิเคชันนั้นจะเปิดจากหน้าเว็บแทน
ซึ่งทำโดยการตั้งค่า handleCodeInApp
เป็น true
ในออบเจ็กต์ ActionCodeSettings
ชื่อแพ็กเกจ Android หรือรหัสชุดของแอปพลิเคชันบนอุปกรณ์เคลื่อนที่จะต้อง
ที่ระบุ URL ของเว็บสำรองที่ใช้ที่นี่ ในกรณีที่ไม่มีแอปบนอุปกรณ์เคลื่อนที่ให้ใช้งาน
ที่กำหนดค่าไว้ในส่วนเทมเพลตการดำเนินการกับอีเมล ค่าเริ่มต้นคือ
จัดสรรไว้สำหรับทุกโปรเจ็กต์ โปรดดู
การกำหนดค่าเครื่องจัดการอีเมลเพื่อเรียนรู้เพิ่มเติม
วิธีปรับแต่งเครื่องจัดการการดำเนินการอีเมล
ในกรณีนี้ ลิงก์แอปบนอุปกรณ์เคลื่อนที่ที่ส่งถึงผู้ใช้จะเป็นลิงก์ FDL
เพย์โหลดคือ URL ของรหัสการดำเนินการที่กำหนดค่าไว้ในคอนโซลด้วยคำค้นหา
พารามิเตอร์ oobCode
, mode
, apiKey
และ continueUrl
โดยตัวเลือกหลังจะเป็น
URL
เดิมที่ระบุไว้ใน
ActionCodeSettings
ออบเจ็กต์ ในขณะที่คุณสกัดกั้นและจัดการ
เราขอแนะนำลิงก์ขาเข้าจากแอปของคุณโดยไม่ต้องมีการพึ่งพาเพิ่มเติมใดๆ
โดยใช้ไลบรารีของไคลเอ็นต์ FDL เพื่อแยกวิเคราะห์ Deep Link ให้คุณ โค้ดการกระทำสามารถ
สามารถสมัครได้โดยตรงจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ซึ่งคล้ายกับวิธีจัดการจาก
เว็บที่อธิบายใน
การปรับแต่งเครื่องจัดการอีเมล
เมื่อจัดการกับการทำงานของอีเมล เช่น การยืนยันอีเมล รหัสการดำเนินการจาก
ต้องแยกวิเคราะห์พารามิเตอร์การค้นหา oobCode
รายการจาก Deep Link แล้วนำไปใช้
ผ่าน applyActionCode
เพื่อให้การเปลี่ยนแปลงมีผล เช่น ต้องยืนยันอีเมล