คุณส่งสถานะผ่าน URL สำหรับดำเนินการต่อได้เมื่อส่งการดำเนินการทางอีเมลสำหรับการรีเซ็ตรหัสผ่านหรือการยืนยันอีเมลของผู้ใช้ ซึ่งช่วยให้ผู้ใช้สามารถ กลับไปที่แอปได้หลังจากดำเนินการเสร็จสิ้น นอกจากนี้ คุณยังระบุได้ว่าจะจัดการลิงก์การดำเนินการทางอีเมลจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่โดยตรงเมื่อมีการติดตั้งแทนหน้าเว็บหรือไม่
ซึ่งจะมีประโยชน์อย่างยิ่งในสถานการณ์ทั่วไปต่อไปนี้
ผู้ใช้ที่ไม่ได้เข้าสู่ระบบในขณะนี้อาจพยายามเข้าถึงเนื้อหาที่ กำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ อย่างไรก็ตาม ผู้ใช้อาจลืมรหัสผ่าน จึงทำให้เกิดขั้นตอนการรีเซ็ตรหัสผ่าน เมื่อสิ้นสุดโฟลว์ ผู้ใช้คาดหวังที่จะกลับไปยังส่วนของแอปที่ตนพยายามเข้าถึง
แอปพลิเคชันอาจให้สิทธิ์เข้าถึงเฉพาะบัญชีที่ยืนยันแล้ว ตัวอย่างเช่น จดหมายข่าวอาจกำหนดให้ผู้ใช้ยืนยันอีเมลก่อนจึงจะสมัครรับข้อมูลได้ ผู้ใช้จะผ่านขั้นตอนการยืนยันอีเมลและคาดหวัง ที่จะกลับไปที่แอปเพื่อสมัครใช้บริการให้เสร็จสมบูรณ์
ในกรณีอื่นๆ ผู้ใช้อาจเริ่มขั้นตอนจากอุปกรณ์เคลื่อนที่ และคาดหวังว่าหลังจากยืนยันแล้วจะกลับไปที่แอปบนอุปกรณ์เคลื่อนที่แทน เบราว์เซอร์
ความสามารถในการส่งสถานะผ่าน URL สำหรับดำเนินการต่อเป็นฟีเจอร์ที่มีประสิทธิภาพที่ Firebase Auth มีให้ และช่วยปรับปรุงประสบการณ์ของผู้ใช้ได้อย่างมาก
การส่งสถานะของ URL สำหรับดำเนินการต่อในการดำเนินการทางอีเมล
หากต้องการส่ง URL สำหรับดำเนินการต่ออย่างปลอดภัย คุณต้องเพิ่มโดเมนสำหรับ URL เป็นโดเมนที่ได้รับอนุญาต โดยทำดังนี้
ในคอนโซล Firebase ให้ไปที่ ความปลอดภัย > การตรวจสอบสิทธิ์ > แท็บการตั้งค่า
ในส่วนโดเมนที่ได้รับอนุญาต ให้คลิกเพิ่มโดเมน แล้วเพิ่ม URL
คุณต้องระบุ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 |
(บูลีน|ไม่ระบุ) | ไม่ว่าจะเปิดลิงก์การดำเนินการในอีเมลในแอปบนอุปกรณ์เคลื่อนที่หรือลิงก์เว็บก่อน ระบบตั้งค่าเริ่มต้นไว้เป็น "เท็จ" เมื่อตั้งค่าเป็น "จริง" ระบบจะส่งลิงก์รหัสการดำเนินการ เป็น Universal Link หรือ Android App Link และแอปจะเปิดลิงก์ หากมีการติดตั้ง ในกรณีที่เป็นเท็จ ระบบจะส่งรหัสไปยัง วิดเจ็ตบนเว็บก่อน จากนั้นเมื่อดำเนินการต่อ ระบบจะเปลี่ยนเส้นทางไปยังแอปหาก ติดตั้งไว้ |
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 หรือรหัสชุด iOS ของแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ด้วย
URL เว็บสำรองที่ใช้ที่นี่เมื่อไม่มีแอปบนอุปกรณ์เคลื่อนที่คือ URL ที่ กำหนดค่าไว้ในส่วนเทมเพลตการดำเนินการทางอีเมล ระบบจะจัดสรรค่าเริ่มต้น สำหรับทุกโปรเจ็กต์ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีปรับแต่งตัวแฮนเดิลการดำเนินการทางอีเมลได้ที่หัวข้อ การปรับแต่งตัวแฮนเดิลอีเมล
ในกรณีนี้ ลิงก์แอปบนอุปกรณ์เคลื่อนที่ที่ส่งไปยังผู้ใช้จะเป็นHostingลิงก์ ซึ่งมีเพย์โหลดเป็น URL โค้ดการดำเนินการที่กำหนดค่าไว้ใน Console พร้อมพารามิเตอร์การค้นหา oobCode, mode, apiKey และ continueUrl โดยค่าหลังจะเป็น URL เดิมที่ระบุไว้ในออบเจ็กต์ ActionCodeSettings คุณสามารถใช้รหัสการดำเนินการได้โดยตรงจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ในลักษณะเดียวกับที่จัดการจาก
ขั้นตอนบนเว็บที่อธิบายไว้ในส่วนการปรับแต่งตัวแฮนเดิลอีเมล
เมื่อจัดการการดำเนินการทางอีเมล เช่น การยืนยันอีเมล คุณจะต้องแยกวิเคราะห์รหัสการดำเนินการจากพารามิเตอร์การค้นหา oobCode จาก Deep Link แล้วนำไปใช้ผ่าน applyActionCode เพื่อให้การเปลี่ยนแปลงมีผล เช่น อีเมลที่จะได้รับการยืนยัน