هنگام ارسال کنشهای ایمیل برای بازنشانی گذرواژه یا درستیسنجی ایمیل کاربر، میتوانید وضعیت را ازطریق نشانی وب ادامه منتقل کنید. این امر به کاربر امکان میدهد پساز تکمیل کنش به برنامه برگردد. علاوهبراین، میتوانید مشخص کنید که آیا پیوند کنش ایمیل مستقیماً از برنامه تلفن همراه (درصورت نصب بودن) بهجای صفحه وب مدیریت شود یا نه.
این ویژگی در سناریوهای رایج زیر میتواند بسیار مفید باشد:
کاربری که درحالحاضر به سیستم وارد نشده است ممکن است سعی کند به محتوایی دسترسی پیدا کند که نیاز دارد کاربر به سیستم وارد شده باشد. بااینحال، ممکن است کاربر گذرواژه خود را فراموش کرده باشد و بنابراین جریان بازنشانی گذرواژه را راهاندازی کند. در پایان جریان، کاربر انتظار دارد به بخشی از برنامه که در تلاش برای دسترسی به آن بوده است برگردد.
برنامه فقط میتواند دسترسی به حسابهای درستیسنجیشده را ارائه دهد. برای مثال، ممکن است یک خبرنامه از کاربر بخواهد قبلاز مشترک شدن، ایمیل خود را درستیسنجی کند. کاربر ازطریق جریان درستیسنجی ایمیل اقدام میکند و انتظار دارد برای تکمیل اشتراک خود به برنامه برگردد.
در موارد دیگر، کاربر ممکن است جریان را از دستگاه همراه خود شروع کرده باشد و انتظار داشته باشد که پساز درستیسنجی به برنامه تلفن همراه خود بازگردد، نه به مرورگر.
توانایی انتقال وضعیت ازطریق نشانی وب ادامه یک ویژگی قدرتمند است که Firebase Auth ارائه میدهد و میتواند تجربه کاربری را بهطور قابلتوجهی بهبود بخشد.
انتقال وضعیت نشانی وب ادامه در کنشهای ایمیل
برای انتقال ایمن نشانی وب ادامه، باید دامنه نشانی وب را بهعنوان دامنه مجاز اضافه کنید:
در کنسول Firebase، به امنیت > اصالتسنجی > زبانه تنظیمات بروید.
در بخش دامنههای مجاز، روی افزودن دامنه کلیک کنید و نشانی وب را اضافه کنید.
هنگام ارسال ایمیل بازنشانی گذرواژه یا ایمیل درستیسنجی، باید نمونه firebase.auth.ActionCodeSettings ارائه شود. این میانای کاربری پارامترهای زیر را میپذیرد:
| پارامتر | نوع | شرح |
|---|---|---|
url |
رشته | پیوند (نشانی وب وضعیت/ادامه) را تنظیم میکند که در بافتارهای مختلف معانی متفاوتی دارد:
|
iOS |
({bundleId: string}|undefined) | شناسه بسته iOS را تنظیم میکند تا به Firebase Authentication کمک کند تعیین کند که آیا باید پیوند فقط وب یا پیوند تلفن همراه ایجاد کند که در دستگاه Apple باز میشود |
android |
({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) | نام بسته Android را تنظیم میکند تا به Firebase Authentication کمک کند تعیین کند آیا باید پیوند فقط وب یا پیوند تلفن همراه ایجاد کند که در دستگاه Android باز میشود |
handleCodeInApp |
(مقدار منطقی|تعریفنشده) | اینکه پیوند کنش ایمیل ابتدا در برنامه تلفن همراه یا پیوند وب باز شود. پیشفرض «نادرست» است. وقتی روی درست تنظیم شود، پیوند کد کنش بهصورت «پیوند جهانی» یا «پیوند برنامه Android» ارسال میشود و اگر برنامه نصب شده باشد، با آن باز میشود. در حالت نادرست، کد ابتدا به ابزاره وب ارسال میشود و سپس درصورت نصب بودن برنامه، با ادامه دادن به برنامه هدایت میشوید. |
linkDomain |
(رشته|تعریفنشده) | وقتی دامنههای پیوند سفارشی Hosting برای پروژهای تعریف میشود،
مشخص کنید وقتی پیوند باید توسط برنامه تلفن همراه مشخصی باز شود از کدام دامنه استفاده شود. درغیراینصورت، دامنه پیشفرض بهطور خودکار انتخاب میشود (برای مثال،
PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
(رشته|تعریفنشده) | منسوخشده. این پارامتر را مشخص نکنید. |
مثال زیر نشان میدهد که چگونه پیوند درستیسنجی ایمیل ارسال کنید که ابتدا در برنامه تلفن همراه بااستفاده از دامنه سفارشی Hosting
custom-domain.com باز میشود. پیوند عمیق حاوی بار ادامه نشانی وب
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 گواهینامه برنامه باید ارائه شود.
- همچنین باید فیلتر هدف را برای پیوند عمیق در فایل
AndroidManifest.xmlپیکربندی کنید. - برای اطلاعات بیشتر در این زمینه، به دریافت دستورالعملهای پیوندهای میزبانی Android مراجعه کنید.
پیکربندی برنامههای iOS:
- اگر قصد دارید این پیوندها را از برنامه iOS خود مدیریت کنید، باید دامنه پیوند Hosting را بهعنوان «دامنه منسوب» در قابلیتهای برنامهتان پیکربندی کنید.
- برای اطلاعات بیشتر در این زمینه، به دریافت دستورالعملهای پیوندهای میزبانی iOS مراجعه کنید.
مدیریت کنشهای ایمیل در برنامه وب
میتوانید مشخص کنید که آیا میخواهید پیوند کد کنش را ابتدا از برنامه وب
مدیریت کنید و سپس پساز تکمیل موفقیتآمیز، به صفحه وب یا برنامه تلفن همراه دیگری
هدایت کنید، بهشرطی که برنامه تلفن همراه دردسترس باشد.
این کار با تنظیم handleCodeInApp روی false در
شیء firebase.auth.ActionCodeSettings انجام میشود. اگرچه شناسه بسته iOS
یا نام بسته Android الزامی نیست، ارائه آنها به کاربر امکان میدهد
پساز تکمیل کد کنش ایمیل به برنامه مشخصشده هدایت شود.
نشانی وب استفادهشده در اینجا، نشانی وبی است که در بخش الگوهای کنش ایمیل پیکربندی شده است. یک مورد پیشفرض برای همه پروژهها آماده میشود. برای کسب اطلاعات بیشتر درباره نحوه سفارشیسازی کردن مدیریتکننده کنش ایمیل، به سفارشیسازی مدیریتکنندههای ایمیل مراجعه کنید.
در این مورد، پیوند درون پارامتر پُرسمان continueUrl پیوند «میزبانی» خواهد بود که محتوای آن URL مشخصشده در ActionCodeSettings
شیء است.
هنگام مدیریت کنشهای ایمیل مثل درستیسنجی ایمیل، کد کنش از
پارامتر پُرسمان oobCode باید از پیوند عمیق تجزیه شود و سپس ازطریق applyActionCode اعمال شود تا تغییر اعمال شود، یعنی ایمیل درستیسنجی شود.
مدیریت کنشهای ایمیل در برنامه تلفن همراه
میتوانید مشخص کنید که آیا میخواهید پیوند کد کنش را ابتدا در
برنامه تلفن همراهتان مدیریت کنید یا نه، البته به شرطی که نصب شده باشد. اگر پیوند از دستگاهی که از برنامه تلفن همراه پشتیبانی نمیکند کلیک شود، بهجای آن از صفحه وب باز میشود. این کار با تنظیم handleCodeInApp روی true در
شیء firebase.auth.ActionCodeSettings انجام میشود. نام بسته Android یا شناسه بسته نرمافزاری iOS برنامه تلفن همراه نیز باید مشخص شود.
نشانی وب جایگزین که در اینجا استفاده میشود، زمانی که برنامه تلفن همراه دردسترس نباشد، همان نشانی وبی است که در بخش الگوهای کنش ایمیل پیکربندی شده است. یک مورد پیشفرض برای همه پروژهها تدارک دیده میشود. برای کسب اطلاعات بیشتر درباره نحوه سفارشیسازی کردن مدیریتکننده کنش ایمیل، به سفارشیسازی مدیریتکنندههای ایمیل مراجعه کنید.
در این مورد، پیوند برنامه تلفن همراه ارسالشده به کاربر پیوند Hosting خواهد بود
که پیام آن نشانی وب کد کنش است که در «کنسول» با پُرسمان
پارامترهای oobCode، mode، apiKey، و continueUrl پیکربندی شده است. مورد دوم URL اصلی خواهد بود که در شیء ActionCodeSettings مشخص شده است. کد کنش را میتوان مستقیماً از برنامه تلفن همراه اعمال کرد، مشابه نحوه مدیریت آن از جریان وب که در بخش سفارشیسازی مدیریتکنندههای ایمیل توضیح داده شده است.
هنگام مدیریت کنشهای ایمیل مثل درستیسنجی ایمیل، کد کنش از
پارامتر پُرسمان oobCode باید از پیوند عمیق تجزیه شود و سپس ازطریق applyActionCode اعمال شود تا تغییر اعمال شود، یعنی ایمیل درستیسنجی شود.