คุณสามารถส่งสถานะผ่าน URL ต่อเมื่อส่งการดำเนินการทางอีเมลสำหรับการรีเซ็ตรหัสผ่านหรือการยืนยันอีเมลของผู้ใช้ ซึ่งจะช่วยให้ผู้ใช้กลับไปที่แอปได้หลังจากดำเนินการเสร็จสิ้น นอกจากนี้ คุณยังระบุได้ด้วยว่าจะจัดการลิงก์การดําเนินการของอีเมลจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่โดยตรงหรือไม่เมื่อติดตั้งแอปแทนหน้าเว็บ
ซึ่งจะมีประโยชน์อย่างยิ่งในสถานการณ์ทั่วไปต่อไปนี้
ผู้ใช้ที่ไม่ได้เข้าสู่ระบบในขณะนี้อาจพยายามเข้าถึงเนื้อหาที่กําหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ อย่างไรก็ตาม ผู้ใช้อาจลืมรหัสผ่าน จึงทริกเกอร์ขั้นตอนการรีเซ็ตรหัสผ่าน เมื่อสิ้นสุดขั้นตอน ผู้ใช้จะคาดหวังว่าจะกลับไปที่ส่วนของแอปที่พยายามเข้าถึง
แอปพลิเคชันมีสิทธิ์เข้าถึงได้เฉพาะบัญชีที่ยืนยันแล้วเท่านั้น เช่น จดหมายข่าวอาจกำหนดให้ผู้ใช้ต้องยืนยันอีเมลก่อนสมัครรับข้อมูล ผู้ใช้จะต้องทำตามขั้นตอนการยืนยันอีเมลและคาดว่าจะต้องกลับไปที่แอปเพื่อสมัครใช้บริการให้เสร็จสมบูรณ์
ในกรณีอื่นๆ ผู้ใช้อาจเริ่มขั้นตอนจากอุปกรณ์เคลื่อนที่และคาดหวังว่าหลังจากการยืนยันแล้ว ระบบจะกลับไปที่แอปบนอุปกรณ์เคลื่อนที่แทนที่จะเป็นเบราว์เซอร์
ความสามารถในการส่งสถานะผ่าน URL ของหน้าถัดไปเป็นฟีเจอร์ที่มีประสิทธิภาพซึ่ง Firebase Auth มีให้และช่วยปรับปรุงประสบการณ์ของผู้ใช้ได้อย่างมาก
การส่งสถานะของ URL สำหรับดำเนินการต่อในการดําเนินการทางอีเมล
หากต้องการส่ง URL ต่อไปอย่างปลอดภัย คุณจะต้องเพิ่มโดเมนของ URL นั้นในคอนโซล Firebase เป็นโดเมนที่ได้รับอนุญาต ซึ่งทำได้ในส่วนการตรวจสอบสิทธิ์โดยการเพิ่มโดเมนนี้ลงในรายการโดเมนที่ได้รับอนุญาตในแท็บวิธีการลงชื่อเข้าใช้ หากยังไม่มี
คุณต้องระบุอินสแตนซ์ firebase.auth.ActionCodeSettings
เมื่อส่งอีเมลรีเซ็ตรหัสผ่านหรืออีเมลยืนยัน อินเทอร์เฟซนี้ใช้พารามิเตอร์ต่อไปนี้
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
url |
สตริง | ตั้งค่าลิงก์ (URL สถานะ/ดำเนินการต่อ) ซึ่งมีความหมายแตกต่างกันในบริบทต่างๆ ดังนี้
|
iOS |
({bundleId: string}|undefined) | ตั้งค่ารหัสกลุ่ม iOS เพื่อช่วยFirebase Authenticationระบุว่าจะสร้างลิงก์สำหรับเว็บเท่านั้นหรือลิงก์สำหรับอุปกรณ์เคลื่อนที่ซึ่งเปิดในอุปกรณ์ Apple |
android |
({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) | ตั้งค่าชื่อแพ็กเกจ Android เพื่อช่วย Firebase Authentication พิจารณาว่าจะสร้างลิงก์สำหรับเว็บเท่านั้นหรือลิงก์สำหรับอุปกรณ์เคลื่อนที่ซึ่งเปิดในอุปกรณ์ Android |
handleCodeInApp |
(boolean|undefined) | ระบุว่าลิงก์การดําเนินการของอีเมลจะเปิดในแอปบนอุปกรณ์เคลื่อนที่หรือลิงก์เว็บก่อน ค่าเริ่มต้นคือ False เมื่อตั้งค่าเป็น "จริง" ระบบจะส่งลิงก์โค้ดการดำเนินการเป็น Universal Link หรือ App Link ของ Android และแอปจะเปิดลิงก์ดังกล่าวหากติดตั้งไว้ ในกรณีที่เป็นเท็จ ระบบจะส่งโค้ดไปยังวิดเจ็ตบนเว็บก่อน จากนั้นจะเปลี่ยนเส้นทางไปยังแอปหากติดตั้งไว้ |
linkDomain |
(string|undefined) | เมื่อกำหนดโดเมนลิงก์ Hosting ที่กำหนดเองสำหรับโปรเจ็กต์แล้ว ให้ระบุโดเมนที่จะใช้เมื่อแอปบนอุปกรณ์เคลื่อนที่ที่ระบุจะเปิดลิงก์ มิเช่นนั้นระบบจะเลือกโดเมนเริ่มต้นโดยอัตโนมัติ (เช่น PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
(string|undefined) | เลิกใช้งานแล้ว อย่าระบุพารามิเตอร์นี้ |
ตัวอย่างต่อไปนี้แสดงวิธีส่งลิงก์ยืนยันอีเมลที่จะเปิดในแอปบนอุปกรณ์เคลื่อนที่ก่อนโดยใช้โดเมน Hosting ที่กําหนดเองcustom-domain.com
โดย Deep Link จะมีเพย์โหลด URL ต่อ
https://www.example.com/?email=user@example.com
const actionCodeSettings = {
url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
},
handleCodeInApp: true,
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
linkDomain: "custom-domain.com"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
.then(function() {
// Verification email sent.
})
.catch(function(error) {
// Error occurred. Inspect error.code.
});
การกำหนดค่าลิงก์ Firebase Hosting
Firebase Authentication ใช้ Firebase Hosting เมื่อส่งลิงก์ที่มีไว้เพื่อเปิดในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ หากต้องการใช้ฟีเจอร์นี้ คุณต้องกำหนดค่าลิงก์โฮสติ้งในคอนโซล Firebase
การกำหนดค่าแอปพลิเคชัน Android
- หากวางแผนที่จะจัดการลิงก์เหล่านี้จากแอปพลิเคชัน Android คุณจะต้องระบุชื่อแพ็กเกจของแอปในการตั้งค่าโปรเจ็กต์ในFirebaseคอนโซล นอกจากนี้ คุณยังต้องระบุ SHA-1 และ SHA-256 ของใบรับรองแอปพลิเคชันด้วย
- นอกจากนี้ คุณจะต้องกําหนดค่าตัวกรอง Intent สําหรับ Deep Link ในไฟล์
AndroidManifest.xml
ด้วย - ดูข้อมูลเพิ่มเติมได้ที่วิธีการรับลิงก์การโฮสต์ Android
การกำหนดค่าแอปพลิเคชัน iOS
- หากวางแผนที่จะจัดการลิงก์เหล่านี้จากแอปพลิเคชัน iOS คุณจะต้องกำหนดค่าโดเมนลิงก์ Hosting เป็นโดเมนที่เชื่อมโยงในความสามารถของแอปพลิเคชัน
- ดูข้อมูลเพิ่มเติมได้ที่วิธีการรับลิงก์การโฮสต์ iOS
การจัดการการดำเนินการกับอีเมลในแอปพลิเคชันเว็บ
คุณสามารถระบุได้ว่าต้องการจัดการลิงก์โค้ดการดำเนินการจากเว็บแอปพลิเคชันก่อน แล้วเปลี่ยนเส้นทางไปยังหน้าเว็บอื่นหรือแอปพลิเคชันบนอุปกรณ์เคลื่อนที่หลังจากดำเนินการเสร็จสมบูรณ์แล้วหรือไม่ ทั้งนี้ขึ้นอยู่กับว่าแอปพลิเคชันบนอุปกรณ์เคลื่อนที่พร้อมใช้งานหรือไม่
ซึ่งทำได้โดยตั้งค่า handleCodeInApp
เป็น false
ในออบเจ็กต์ firebase.auth.ActionCodeSettings
แม้ว่าจะไม่จําเป็นต้องใช้รหัสกลุ่ม iOS หรือชื่อแพ็กเกจ Android แต่การให้ข้อมูลดังกล่าวจะช่วยให้ผู้ใช้เปลี่ยนเส้นทางกลับไปยังแอปที่ระบุเมื่อโค้ดการดําเนินการทางอีเมลเสร็จสมบูรณ์
URL ของเว็บที่ใช้ที่นี่คือ URL ที่กําหนดค่าไว้ในส่วนเทมเพลตการดําเนินการของอีเมล ระบบจะจัดสรรค่าเริ่มต้นสำหรับโปรเจ็กต์ทั้งหมด ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีปรับแต่งตัวแฮนเดิลอีเมลเพื่อปรับแต่งตัวแฮนเดิลการดำเนินการกับอีเมล
ในกรณีนี้ ลิงก์ภายในพารามิเตอร์การค้นหา continueUrl
จะเป็นลิงก์โฮสติ้งซึ่งมีเพย์โหลดเป็น URL
ที่ระบุไว้ในออบเจ็กต์ ActionCodeSettings
เมื่อจัดการการดำเนินการทางอีเมล เช่น การยืนยันอีเมล จะต้องแยกวิเคราะห์รหัสการดำเนินการจากพารามิเตอร์การค้นหา oobCode
จาก Deep Link แล้วนำไปใช้ผ่าน applyActionCode
เพื่อให้การเปลี่ยนแปลงมีผล เช่น ยืนยันอีเมล
การจัดการการดำเนินการกับอีเมลในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
คุณสามารถระบุได้ว่าต้องการจัดการลิงก์โค้ดการดำเนินการภายในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ก่อนหรือไม่ หากติดตั้งไว้แล้ว หากมีการคลิกลิงก์จากอุปกรณ์ที่ไม่รองรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ลิงก์จะเปิดจากหน้าเว็บแทน ซึ่งทำได้โดยตั้งค่า handleCodeInApp
เป็น true
ในออบเจ็กต์ firebase.auth.ActionCodeSettings
นอกจากนี้ คุณจะต้องระบุชื่อแพ็กเกจ Android หรือรหัส Bundle ของ iOS ของแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ด้วย
URL ของเว็บสำรองที่ใช้ที่นี่เมื่อไม่มีแอปบนอุปกรณ์เคลื่อนที่คือ URL ที่กําหนดค่าไว้ในส่วนเทมเพลตการดําเนินการทางอีเมล ระบบจะจัดสรรค่าเริ่มต้นสำหรับโปรเจ็กต์ทั้งหมด ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีปรับแต่งตัวแฮนเดิลอีเมลเพื่อปรับแต่งตัวแฮนเดิลการดำเนินการกับอีเมล
ในกรณีนี้ ลิงก์แอปบนอุปกรณ์เคลื่อนที่ที่ส่งไปยังผู้ใช้จะเป็นลิงก์ Hosting ที่มีเพย์โหลดเป็น URL ของโค้ดการดำเนินการซึ่งกําหนดค่าไว้ในคอนโซล โดยมีพารามิเตอร์การค้นหา oobCode
, mode
, apiKey
และ continueUrl
ค่าหลังจะเป็น URL
เดิมที่ระบุไว้ในออบเจ็กต์ ActionCodeSettings
คุณสามารถใช้โค้ดการดำเนินการจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ได้โดยตรง ซึ่งคล้ายกับวิธีจัดการจากเวิร์กโฟลว์ของเว็บที่อธิบายไว้ในส่วนการปรับแต่งตัวแฮนเดิลอีเมล
เมื่อจัดการการดำเนินการทางอีเมล เช่น การยืนยันอีเมล จะต้องแยกวิเคราะห์รหัสการดำเนินการจากพารามิเตอร์การค้นหา oobCode
จาก Deep Link แล้วนำไปใช้ผ่าน applyActionCode
เพื่อให้การเปลี่ยนแปลงมีผล เช่น ยืนยันอีเมล