هنگام ارسال کنشهای ایمیل برای بازنشانی گذرواژه یا درستیسنجی ایمیل کاربر، میتوانید وضعیت را ازطریق نشانی وب ادامه منتقل کنید. این امر به کاربر امکان میدهد پساز تکمیل کنش به برنامه برگردانده شود. علاوهبراین، میتوانید مشخص کنید که آیا پیوند کنش ایمیل مستقیماً از برنامه تلفن همراه (درصورت نصب بودن) بهجای صفحه وب مدیریت شود یا نه.
این ویژگی در سناریوهای رایج زیر میتواند بسیار مفید باشد:
کاربری که درحالحاضر به سیستم وارد نشده است ممکن است سعی کند به محتوایی دسترسی پیدا کند که نیاز دارد کاربر به سیستم وارد شده باشد. بااینحال، ممکن است کاربر گذرواژه خود را فراموش کرده باشد و بنابراین جریان بازنشانی گذرواژه را راهاندازی کند. در پایان جریان، کاربر انتظار دارد به بخشی از برنامه که در تلاش برای دسترسی به آن بوده است برگردد.
برنامه فقط میتواند دسترسی به حسابهای درستیسنجیشده را ارائه دهد. برای مثال، برنامه خبرنامه ممکن است کاربر را ملزم کند قبلاز مشترک شدن، ایمیلش را درستیسنجی کند. کاربر ازطریق جریان درستیسنجی ایمیل اقدام میکند و انتظار دارد برای تکمیل اشتراک به برنامه برگردانده شود.
بهطورکلی، وقتی کاربری در برنامه Apple جریان بازنشانی گذرواژه یا درستیسنجی ایمیل را شروع میکند، انتظار دارد جریان را در همان برنامه تکمیل کند؛ امکان انتقال وضعیت ازطریق نشانی وب ادامه این کار را ممکن میکند.
توانایی انتقال وضعیت ازطریق نشانی وب ادامه یک ویژگی قدرتمند است که Firebase Auth ارائه میدهد و میتواند تجربه کاربری را بهطور قابلتوجهی بهبود بخشد.
انتقال وضعیت نشانی وب ادامه در کنشهای ایمیل
برای انتقال ایمن نشانی وب ادامه، باید دامنه نشانی وب را بهعنوان دامنه مجاز اضافه کنید:
در کنسول Firebase، به امنیت > اصالتسنجی > زبانه تنظیمات بروید.
در بخش دامنههای مجاز، روی افزودن دامنه کلیک کنید و نشانی وب را اضافه کنید.
هنگام ارسال ایمیل بازنشانی گذرواژه یا ایمیل درستیسنجی، باید نمونه FIRActionCodeSettings ارائه شود. این میانای کاربری پارامترهای زیر را میپذیرد:
Swift
| پارامتر | نوع | شرح |
|---|---|---|
URL |
تار | پیوند (نشانی وب وضعیت/ادامه) را تنظیم میکند که در بافتارهای مختلف معانی متفاوتی دارد:
|
iOSBundleID |
تار | شناسه بسته iOS را تنظیم میکند تا به Firebase Authentication کمک کند تعیین کند که آیا باید پیوند فقط وب یا پیوند تلفن همراه ایجاد کند که در دستگاه Apple باز میشود |
androidPackageName |
تار | نام بسته Android را تنظیم میکند تا به Firebase Authentication کمک کند تعیین کند آیا باید پیوند فقط وب یا پیوند تلفن همراه ایجاد کند که در دستگاه Android باز میشود |
handleCodeInApp |
Bool | اینکه پیوند کنش ایمیل ابتدا در برنامه تلفن همراه یا پیوند وب باز شود. پیشفرض «نادرست» است. وقتی روی درست تنظیم شود، پیوند کد کنش بهصورت «پیوند جهانی» یا «پیوند برنامه Android» ارسال میشود و اگر برنامه نصب شده باشد، با آن باز میشود. در حالت نادرست، کد ابتدا به ابزاره وب ارسال میشود و سپس درصورت نصب بودن برنامه، با ادامه دادن به برنامه هدایت میشوید. |
linkDomain |
تار | وقتی دامنههای پیوند «میزبانی» سفارشی برای پروژهای تعریف میشود،
مشخص کنید که وقتی پیوند باید توسط برنامه تلفن همراه مشخصی باز شود، از کدام دامنه استفاده شود. درغیراینصورت، دامنه پیشفرض بهطور خودکار انتخاب میشود (برای مثال،
PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
تار | منسوخشده. این پارامتر را مشخص نکنید. |
Objective-C
| پارامتر | نوع | شرح |
|---|---|---|
URL |
NSString | پیوند (نشانی وب وضعیت/ادامه) را تنظیم میکند که در بافتارهای مختلف معانی متفاوتی دارد:
|
iOSBundleID |
NSString | شناسه بسته iOS را تنظیم میکند تا به Firebase Authentication کمک کند تعیین کند که آیا باید پیوند فقط وب یا پیوند تلفن همراه ایجاد کند که در دستگاه Android یا Apple باز میشود |
androidPackageName |
NSString | نام بسته Android را تنظیم میکند تا به Firebase Authentication کمک کند تعیین کند آیا باید پیوند فقط وب یا پیوند تلفن همراه ایجاد کند که در دستگاه Android یا Apple باز میشود |
handleCodeInApp |
BOOL | اینکه پیوند کنش ایمیل ابتدا در برنامه تلفن همراه یا پیوند وب باز شود. پیشفرض «نادرست» است. وقتی روی درست تنظیم شود، پیوند کد کنش بهصورت «پیوند جهانی» یا «پیوند برنامه Android» ارسال میشود و اگر برنامه نصب شده باشد، با آن باز میشود. در حالت نادرست، کد ابتدا به ابزاره وب ارسال میشود و سپس درصورت نصب بودن برنامه، با ادامه دادن به برنامه هدایت میشوید. |
linkDomain |
NSString | وقتی دامنههای پیوند سفارشی Hosting برای پروژهای تعریف میشود،
مشخص کنید وقتی پیوند باید توسط برنامه تلفن همراه مشخصی باز شود از کدام دامنه استفاده شود. درغیراینصورت، دامنه پیشفرض بهطور خودکار انتخاب میشود (برای مثال،
PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
NSString | منسوخشده. این پارامتر را مشخص نکنید. |
مثال زیر نشان میدهد که چگونه پیوند درستیسنجی ایمیل ارسال کنید که ابتدا در برنامه تلفن همراه بااستفاده از دامنه پیوند سفارشی Hosting
custom-domain.com باز میشود. پیوند عمیق حاوی بار ادامه نشانی وب
https://www.example.com/?email=user@example.com خواهد بود.
Swift
var actionCodeSettings = ActionCodeSettings.init() actionCodeSettings.canHandleInApp = true let user = Auth.auth().currentUser() actionCodeSettings.URL = String(format: "https://www.example.com/?email=%@", user.email) actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier! actionCodeSettings.setAndroidPakageName("com.example.android") // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = "custom-domain.com" user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })
Objective-C
FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init]; actionCodeSettings.handleCodeInApp = YES; FIRUser *user = [FIRAuth auth].currentUser; NSString *urlString = [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email]; actionCodeSettings.URL = [NSURL URLWithString:urlString]; actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier; // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = @"custom-domain.com"; [actionCodeSettings setAndroidPackageName:@"com.example.android"]; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
درحال پیکربندی Firebase Hosting پیوند
Firebase Authentication هنگام ارسال پیوندی که قرار است در برنامه تلفن همراه باز شود از Firebase Hosting استفاده میکند. برای استفاده از این ویژگی، پیوندهای Hosting باید در کنسول Firebase پیکربندی شوند.
پیکربندی برنامههای Apple:
- اگر قصد دارید این پیوندها را از برنامهتان مدیریت کنید، باید دامنه پیوند Hosting را بهعنوان «دامنه مرتبط» در قابلیتهای برنامهتان پیکربندی کنید.
- برای اطلاعات بیشتر در این زمینه، به دریافت دستورالعملهای پیوندهای میزبانی iOS مراجعه کنید.
پیکربندی برنامههای Android:
- اگر قصد دارید این پیوندها را از برنامه Android خود مدیریت کنید، نام بسته برنامهتان باید در تنظیمات پروژه کنسول Firebase مشخص شود. علاوهبراین، SHA-1 و SHA-256 گواهینامه برنامه باید ارائه شود.
- همچنین باید فیلتر هدف را برای پیوند عمیق در فایل
AndroidManifest.xmlپیکربندی کنید. - برای اطلاعات بیشتر در این زمینه، به دریافت دستورالعملهای پیوندهای میزبانی Android مراجعه کنید.
مدیریت کنشهای ایمیل در برنامه وب
میتوانید مشخص کنید که آیا میخواهید پیوند کد کنش را ابتدا از برنامه وب
مدیریت کنید و سپس پساز تکمیل موفقیتآمیز، به صفحه وب یا برنامه تلفن همراه دیگری
هدایت کنید، بهشرطی که برنامه تلفن همراه دردسترس باشد.
این کار با تنظیم handleCodeInApp روی false در
FIRActionCodeSettings (Obj-C) یا ActionCodeSettings (Swift) انجام میشود. اگرچه
شناسه بسته
یا نام بسته Android الزامی نیست، ارائه آنها به کاربر امکان میدهد
پساز تکمیل کد کنش ایمیل به برنامه مشخصشده هدایت شود.
نشانی وب استفادهشده در اینجا، نشانی وبی است که در بخش الگوهای کنش ایمیل پیکربندی شده است. یک مورد پیشفرض برای همه پروژهها آماده میشود. برای کسب اطلاعات بیشتر درباره نحوه سفارشیسازی کردن مدیریتکننده کنش ایمیل، به سفارشیسازی مدیریتکنندههای ایمیل مراجعه کنید.
در این مورد، پیوند درون پارامتر پُرسمان continueURL پیوند Hosting خواهد بود که بار آن URL مشخصشده در
شیء ActionCodeSettings است.
هنگام مدیریت کنشهای ایمیل مثل درستیسنجی ایمیل، کد کنش از
پارامتر پُرسمان oobCode باید از پیوند عمیق تجزیه شود و سپس ازطریق applyActionCode اعمال شود تا تغییر اعمال شود، یعنی ایمیل درستیسنجی شود.
مدیریت کنشهای ایمیل در برنامه تلفن همراه
میتوانید مشخص کنید که آیا میخواهید پیوند کد کنش را ابتدا در
برنامه تلفن همراهتان مدیریت کنید یا نه، البته به شرطی که نصب شده باشد. اگر پیوند از دستگاهی که از برنامه تلفن همراه پشتیبانی نمیکند کلیک شود، بهجای آن از صفحه وب باز میشود. این کار با تنظیم handleCodeInApp روی true در
FIRActionCodeSettings (Obj-C) یا ActionCodeSettings (Swift) انجام میشود. نام بسته Android یا شناسه بسته نرمافزاری برنامه تلفن همراه نیز باید مشخص شود. نشانی وب اصلاح حالت که در اینجا استفاده میشود، زمانی که برنامه تلفن همراه دردسترس نباشد،
نشانی وبی است که در بخش الگوهای کنش ایمیل پیکربندی شده است. یک مورد پیشفرض برای همه پروژهها
تدارک دیده شده است. برای کسب اطلاعات بیشتر درباره نحوه سفارشیسازی کردن مدیریتکننده کنش ایمیل، به
سفارشیسازی مدیریتکنندههای ایمیل مراجعه کنید.
در این مورد، پیوند برنامه تلفن همراه ارسالشده به کاربر پیوند Hosting خواهد بود
که پیام آن نشانی وب کد کنش است که در «کنسول» با پُرسمان
پارامترهای oobCode، mode، apiKey، و continueUrl پیکربندی شده است. مورد دوم URL اصلی خواهد بود که در FIRActionCodeSettings (Obj-C) یا
ActionCodeSettings (Swift) مشخص شده است. کد کنش را میتوان مستقیماً از برنامه تلفن همراه اعمال کرد، مشابه نحوه مدیریت آن از جریان وب که در بخش سفارشیسازی مدیریتکنندههای ایمیل توضیح داده شده است.
هنگام مدیریت کنشهای ایمیل مثل درستیسنجی ایمیل، کد کنش از
پارامتر پُرسمان oobCode باید از پیوند عمیق تجزیه شود و سپس ازطریق applyActionCode اعمال شود تا تغییر اعمال شود، یعنی ایمیل درستیسنجی شود.