คุณส่งสถานะผ่าน URL ดำเนินการต่อได้เมื่อส่งการดำเนินการทางอีเมลเพื่อขอรหัสผ่าน รีเซ็ตหรือยืนยันอีเมลของผู้ใช้ วิธีนี้ทำให้ผู้ใช้สามารถ กลับไปที่แอปหลังจากดำเนินการเสร็จแล้ว นอกจากนี้ คุณสามารถระบุ จะจัดการลิงก์การดำเนินการกับอีเมลโดยตรงจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่หรือไม่ในเมื่อ แทนที่จะเป็นหน้าเว็บ
ซึ่งจะเป็นประโยชน์อย่างยิ่งในสถานการณ์ทั่วไปต่อไปนี้
ผู้ใช้ที่ไม่ได้ลงชื่อเข้าสู่ระบบอยู่ในขณะนี้ อาจพยายามเข้าถึงเนื้อหาที่ กำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ แต่ผู้ใช้อาจลืม รหัสผ่าน จึงทริกเกอร์ขั้นตอนการรีเซ็ตรหัสผ่าน ในตอนท้ายของ ผู้ใช้ต้องการกลับไปที่ส่วนของแอปที่ตนอยู่ พยายามเข้าถึง
แอปพลิเคชันอาจเสนอการเข้าถึงบัญชีที่ได้รับการยืนยันแล้วเท่านั้น สำหรับ ตัวอย่างเช่น จดหมายข่าวอาจกำหนดให้ผู้ใช้ยืนยันอีเมลก่อน การสมัครใช้บริการ ผู้ใช้จะดำเนินการตามขั้นตอนการยืนยันอีเมลและคาดหวังว่า เพื่อกลับไปยังแอปเพื่อสมัครใช้บริการให้เสร็จสมบูรณ์
ในกรณีอื่นๆ ผู้ใช้อาจเริ่มดำเนินการจากอุปกรณ์เคลื่อนที่ และคาดหวังให้ผู้ใช้กลับมาใช้แอปบนอุปกรณ์เคลื่อนที่หลังจากการยืนยัน เบราว์เซอร์
ความสามารถในการส่งสถานะผ่าน URL ดำเนินการต่อเป็นฟีเจอร์ที่มีประสิทธิภาพที่ Firebase Auth ให้บริการและช่วยปรับปรุงประสบการณ์ของผู้ใช้ได้อย่างมาก
การส่งสถานะ/URL ต่อในการดำเนินการของอีเมล
ในการส่ง URL ต่อไปอย่างปลอดภัย โดเมนของ URL จะต้อง เป็นโดเมนที่ได้รับอนุญาตในคอนโซลของ Firebase ซึ่งทำได้ในส่วนการตรวจสอบสิทธิ์โดยการเพิ่มโดเมนนี้ลงในส่วน รายการโดเมนที่ได้รับอนุญาตใต้แท็บวิธีการลงชื่อเข้าใช้หากยังไม่มี
ต้องระบุอินสแตนซ์ firebase.auth.ActionCodeSettings
เมื่อส่ง
อีเมลรีเซ็ตรหัสผ่านหรืออีเมลยืนยัน อินเทอร์เฟซนี้ใช้
พารามิเตอร์ต่อไปนี้
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
url |
สตริง | ตั้งค่าลิงก์ (URL สถานะ/ดำเนินการต่อ) ซึ่งมีความหมายต่างกัน ในบริบทต่างๆ
|
iOS |
({bundleId: string}|ไม่ระบุ) | ตั้งค่ารหัสชุด iOS การดำเนินการนี้จะพยายามเปิดลิงก์ในแอป iOS หาก ติดตั้งแล้ว ต้องลงทะเบียนแอป iOS ในคอนโซล |
android |
({packageName: string, installApp:boolean|undefined เวอร์ชันต่ำสุด: string|undefined}|ไม่ระบุ) | ตั้งชื่อแพ็กเกจ Android การดำเนินการนี้จะพยายามเปิดลิงก์ใน
แอป Android หากติดตั้งไว้ หากผ่าน installApp จะเป็น
ระบุว่าจะติดตั้งแอป Android หากอุปกรณ์รองรับ และ
ยังไม่ได้ติดตั้งแอปนี้ หากฟิลด์นี้ไม่มี
packageName เกิดข้อผิดพลาดในการอธิบายว่า
ต้องระบุ packageName ร่วมกับช่องนี้
หากมีการระบุ minimumVersion และเป็นเวอร์ชันเก่าของ
ติดตั้งแอปแล้ว ระบบจะนำผู้ใช้ไปยัง Play Store เพื่ออัปเกรดแอป
ต้องลงทะเบียนแอป Android ใน Console |
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
var actionCodeSettings = {
url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
handleCodeInApp: true,
// When multiple custom dynamic link domains are defined, specify which
// one to use.
dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
.then(function() {
// Verification email sent.
})
.catch(function(error) {
// Error occurred. Inspect error.code.
});
การกำหนดค่าลิงก์แบบไดนามิกของ Firebase
การตรวจสอบสิทธิ์ Firebase ใช้ลิงก์แบบไดนามิกของ Firebase เมื่อส่ง ซึ่งควรเปิดในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ หากต้องการใช้ฟีเจอร์นี้ คุณต้องกำหนดค่าลิงก์แบบไดนามิกในคอนโซล Firebase
เปิดใช้ลิงก์แบบไดนามิกของ Firebase:
- ในคอนโซล Firebase ให้เปิดส่วน Dynamic Links
-
หากคุณยังไม่ได้ยอมรับข้อกำหนด Dynamic Links และสร้าง Dynamic Links โดเมน ให้ดำเนินการในขณะนี้
หากคุณสร้างโดเมน Dynamic Links ไว้แล้ว โปรดจดบันทึกไว้ Dynamic Links โดเมนมักจะมีลักษณะดังตัวอย่างต่อไปนี้
example.page.link
คุณจะต้องใช้ค่านี้เมื่อกำหนดค่าแอป Apple หรือ Android เป็น สกัดกั้นลิงก์ขาเข้า
การกำหนดค่าแอปพลิเคชัน Android
- หากคุณวางแผนที่จะจัดการลิงก์เหล่านี้จากแอปพลิเคชัน Android ของคุณ ต้องระบุชื่อแพ็กเกจ Android ในคอนโซล Firebase การตั้งค่าโปรเจ็กต์ นอกจากนี้ SHA-1 และ SHA-256 ของแอปพลิเคชัน ต้องระบุใบรับรอง
- คุณจะต้องกำหนดค่าตัวกรอง Intent สำหรับ Deep Link ใน
ไฟล์
AndroidManifest.xml
- สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การรับวิธีการเกี่ยวกับลิงก์แบบไดนามิกของ Android
การกำหนดค่าแอปพลิเคชัน iOS
- หากคุณวางแผนที่จะจัดการลิงก์เหล่านี้จากแอปพลิเคชัน iOS ของคุณ ต้องระบุรหัสชุด iOS ในคอนโซล Firebase การตั้งค่าโปรเจ็กต์ นอกจากนี้ รหัส App Store และนักพัฒนา Apple และต้องระบุรหัสทีมด้วย
- คุณยังต้องกำหนดค่าโดเมน Universal Link ของ FDL เป็น โดเมนที่เชื่อมโยงในความสามารถของแอปพลิเคชัน
- หากคุณวางแผนที่จะเผยแพร่แอปพลิเคชันไปยัง iOS เวอร์ชัน 8 และต่ำกว่า คุณจะต้องตั้งรหัสชุด iOS เป็นรูปแบบที่กำหนดเองสำหรับ URL
- สำหรับข้อมูลเพิ่มเติม โปรดดูที่ วิธีการรับลิงก์แบบไดนามิกของ iOS
จัดการการดำเนินการกับอีเมลในเว็บแอปพลิเคชัน
คุณสามารถระบุได้ว่าต้องการจัดการลิงก์โค้ดการกระทำจากเว็บหรือไม่
แอปพลิเคชันก่อน แล้วจึงเปลี่ยนเส้นทางไปยังหน้าเว็บหรือแอปพลิเคชันบนอุปกรณ์เคลื่อนที่อื่น
หลังจากทำสำเร็จแล้ว หากมีแอปพลิเคชันบนมือถือที่พร้อมให้บริการ
โดยการตั้งค่า handleCodeInApp
เป็น false
ใน
ออบเจ็กต์ firebase.auth.ActionCodeSettings
รายการ ขณะที่รหัสชุด iOS
หรือชื่อแพ็กเกจ Android หรือไม่ก็ได้ การให้
ชื่อจะทำให้ผู้ใช้
เพื่อเปลี่ยนเส้นทางกลับไปยังแอปที่ระบุเมื่อกรอกรหัสการดำเนินการกับอีเมลแล้ว
URL ของเว็บที่ใช้ที่นี่คือ URL ที่กำหนดค่าไว้ในเทมเพลตการดำเนินการกับอีเมล ระบบจะจัดสรรค่าเริ่มต้นให้กับโปรเจ็กต์ทั้งหมด โปรดดู การกำหนดค่าเครื่องจัดการอีเมลเพื่อเรียนรู้เพิ่มเติม วิธีปรับแต่งเครื่องจัดการการดำเนินการอีเมล
ในกรณีนี้ ลิงก์ภายในพารามิเตอร์การค้นหา continueUrl
จะ
ลิงก์ FDL ซึ่งมีเพย์โหลดเป็น URL
ที่ระบุไว้ใน ActionCodeSettings
ออบเจ็กต์ ในขณะที่คุณสกัดกั้นและจัดการลิงก์ขาเข้าจากแอปได้
โดยไม่ต้องมีการขึ้นต่อกันใดๆ เพิ่มเติม เราขอแนะนำให้ใช้ไลบรารีของไคลเอ็นต์ FDL เพื่อ
แยกวิเคราะห์ Deep Link ให้คุณ
เมื่อดำเนินการจัดการอีเมล เช่น การยืนยันอีเมล รหัสการดำเนินการจาก
ต้องแยกวิเคราะห์พารามิเตอร์การค้นหา oobCode
รายการจาก Deep Link แล้วนำไปใช้
ผ่าน applyActionCode
เพื่อให้การเปลี่ยนแปลงมีผล เช่น ต้องยืนยันอีเมล
การจัดการการดำเนินการกับอีเมลในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
คุณสามารถระบุว่าต้องการจัดการลิงก์โค้ดการกระทำภายใน
แอปพลิเคชันบนอุปกรณ์เคลื่อนที่ก่อนหากมีการติดตั้งแล้ว สำหรับแอปพลิเคชัน Android
คุณยังระบุผ่าน android.installApp
ได้ว่าแอป
จะติดตั้งหากอุปกรณ์รองรับและยังไม่ได้ติดตั้ง
หากคลิกลิงก์จากอุปกรณ์ที่ไม่รองรับอุปกรณ์เคลื่อนที่
แอปพลิเคชันนั้นจะเปิดจากหน้าเว็บแทน
โดยการตั้งค่า handleCodeInApp
เป็น true
ใน
ออบเจ็กต์ firebase.auth.ActionCodeSettings
รายการ ทั้งนี้
คุณจะต้องระบุชื่อแพ็กเกจ Android หรือรหัสชุด iOS ด้วย
URL เว็บสำรองที่ใช้ที่นี่ ในกรณีที่ไม่มีแอปบนอุปกรณ์เคลื่อนที่ให้ใช้งาน จะเป็น URL ที่ ที่กำหนดค่าไว้ในส่วนเทมเพลตการดำเนินการกับอีเมล ระบบจะจัดสรรค่าเริ่มต้น สําหรับทุกโปรเจ็กต์ โปรดดู การกำหนดค่าเครื่องจัดการอีเมลเพื่อเรียนรู้เพิ่มเติม วิธีปรับแต่งเครื่องจัดการการดำเนินการอีเมล
ในกรณีนี้ ลิงก์แอปบนอุปกรณ์เคลื่อนที่ที่ส่งถึงผู้ใช้จะเป็นลิงก์ FDL
เพย์โหลดคือ URL ของรหัสการดำเนินการที่กำหนดค่าไว้ในคอนโซลด้วยคำค้นหา
พารามิเตอร์ oobCode
, mode
, apiKey
และ continueUrl
โดยตัวเลือกหลังจะเป็น
URL
ดั้งเดิมที่ระบุในออบเจ็กต์ ActionCodeSettings
แม้ว่าคุณจะทำได้
สกัดกั้นและจัดการลิงก์ขาเข้าจากแอปของคุณโดยไม่เพิ่ม
เราขอแนะนำให้ใช้ไลบรารีของไคลเอ็นต์ FDL เพื่อแยกวิเคราะห์ Deep Link สำหรับ
ให้ทำงานแทนคุณ สามารถใช้โค้ดการกระทำได้โดยตรงจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ที่คล้ายกัน
ไปจนถึงวิธีจัดการจากขั้นตอนการใช้งานเว็บที่อธิบายไว้ใน
การปรับแต่งเครื่องจัดการอีเมล
เมื่อจัดการกับการทำงานของอีเมล เช่น การยืนยันอีเมล รหัสการดำเนินการจาก
ต้องแยกวิเคราะห์พารามิเตอร์การค้นหา oobCode
รายการจาก Deep Link แล้วนำไปใช้
ผ่าน applyActionCode
เพื่อให้การเปลี่ยนแปลงมีผล เช่น ต้องยืนยันอีเมล