পাসওয়ার্ড রিসেট করার জন্য বা ব্যবহারকারীর ইমেল যাচাই করার জন্য ইমেল অ্যাকশন পাঠানোর সময় আপনি একটি অবিরত URL-এর মাধ্যমে রাজ্য পাস করতে পারেন। এটি ব্যবহারকারীকে অ্যাকশন শেষ হওয়ার পরে অ্যাপে ফিরে যাওয়ার ক্ষমতা প্রদান করে। উপরন্তু, আপনি একটি ওয়েব পৃষ্ঠার পরিবর্তে ইনস্টল করা হলে মোবাইল অ্যাপ্লিকেশন থেকে সরাসরি ইমেল অ্যাকশন লিঙ্ক পরিচালনা করবেন কিনা তা নির্দিষ্ট করতে পারেন৷
নিম্নলিখিত সাধারণ পরিস্থিতিতে এটি অত্যন্ত দরকারী হতে পারে:
একজন ব্যবহারকারী, বর্তমানে লগ ইন করা নেই, সে এমন সামগ্রী অ্যাক্সেস করার চেষ্টা করতে পারে যার জন্য ব্যবহারকারীকে সাইন ইন করতে হবে৷ যাইহোক, ব্যবহারকারী তাদের পাসওয়ার্ড ভুলে গেছেন এবং সেইজন্য পাসওয়ার্ড রিসেট ফ্লো ট্রিগার করতে পারেন৷ প্রবাহের শেষে, ব্যবহারকারী অ্যাপের যে বিভাগে তারা অ্যাক্সেস করার চেষ্টা করছেন সেখানে ফিরে যাওয়ার প্রত্যাশা করে।
একটি অ্যাপ্লিকেশন শুধুমাত্র যাচাইকৃত অ্যাকাউন্টগুলিতে অ্যাক্সেসের প্রস্তাব দিতে পারে। উদাহরণস্বরূপ, একটি নিউজলেটার অ্যাপের সদস্যতা নেওয়ার আগে ব্যবহারকারীকে তাদের ইমেল যাচাই করতে হতে পারে। ব্যবহারকারী ইমেল যাচাইকরণ প্রবাহের মধ্য দিয়ে যাবে এবং তাদের সাবস্ক্রিপশন সম্পূর্ণ করার জন্য অ্যাপে ফিরে আসার আশা করবে।
সাধারণভাবে, যখন একজন ব্যবহারকারী অ্যাপল অ্যাপে পাসওয়ার্ড রিসেট বা ইমেল যাচাইকরণ প্রবাহ শুরু করেন তখন তারা অ্যাপের মধ্যে প্রবাহ সম্পূর্ণ করার আশা করেন; ইউআরএল চালিয়ে যাওয়ার মাধ্যমে স্টেট পাস করার ক্ষমতা এটিকে সম্ভব করে তোলে।
একটি অবিরত ইউআরএলের মাধ্যমে স্টেট পাস করার ক্ষমতা থাকা একটি শক্তিশালী বৈশিষ্ট্য যা Firebase Auth প্রদান করে এবং যা ব্যবহারকারীর অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
ইমেল অ্যাকশনে স্টেট/কন্টিনিউ ইউআরএল পাস করা
একটি অবিরত URL নিরাপদে পাস করার জন্য, URL-এর ডোমেনটিকে Firebase কনসোলে সাদা তালিকাভুক্ত করতে হবে। সাইন-ইন পদ্ধতি ট্যাবের অধীনে অনুমোদিত ডোমেনের তালিকায় এই ডোমেনটি যোগ করে প্রমাণীকরণ বিভাগে এটি করা হয় যদি এটি ইতিমধ্যে সেখানে না থাকে।
একটি পাসওয়ার্ড রিসেট ইমেল বা একটি যাচাইকরণ ইমেল পাঠানোর সময় একটি FIRActionCodeSettings
উদাহরণ প্রদান করা প্রয়োজন৷ এই ইন্টারফেস নিম্নলিখিত পরামিতি লাগে:
সুইফট
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
URL | স্ট্রিং | লিঙ্ক সেট করে (স্টেট/কন্টিনিউ ইউআরএল) যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ রয়েছে:
|
iOSBundleID | স্ট্রিং | বান্ডিল আইডি সেট করে। এটি ইনস্টল করা থাকলে এটি একটি Apple অ্যাপে লিঙ্কটি খোলার চেষ্টা করবে। অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। যদি কোনো বান্ডেল আইডি দেওয়া না থাকে, তাহলে এই ফিল্ডের মান অ্যাপের প্রধান বান্ডেলের বান্ডেল আইডিতে সেট করা হয়। |
androidPackageName | স্ট্রিং | অ্যান্ড্রয়েড প্যাকেজের নাম সেট করে। এটি ইনস্টল করা থাকলে এটি একটি অ্যান্ড্রয়েড অ্যাপে লিঙ্কটি খুলতে চেষ্টা করবে। |
androidInstallIfNotAvailable | বুল | যদি ডিভাইসটি সমর্থন করে এবং অ্যাপটি ইতিমধ্যে ইনস্টল না করা থাকে তবে Android অ্যাপটি ইনস্টল করতে হবে কিনা তা নির্দিষ্ট করে৷ যদি এই ক্ষেত্রটি প্যাকেজনাম ব্যতীত প্রদান করা হয়, তাহলে একটি ত্রুটি নিক্ষেপ করা হয় যা ব্যাখ্যা করে যে প্যাকেজনামটি এই ক্ষেত্রের সাথে একত্রে প্রদান করা আবশ্যক। |
androidMinimumVersion | স্ট্রিং | অ্যাপটির ন্যূনতম সংস্করণ যা এই প্রবাহে সমর্থিত। যদি ন্যূনতম সংস্করণ নির্দিষ্ট করা থাকে, এবং অ্যাপটির একটি পুরানো সংস্করণ ইনস্টল করা থাকে, ব্যবহারকারীকে অ্যাপটি আপগ্রেড করতে প্লে স্টোরে নিয়ে যাওয়া হয়। অ্যান্ড্রয়েড অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। |
handleCodeInApp | বুল | ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে। |
dynamicLinkDomain | স্ট্রিং | যদি Firebase ডায়নামিক লিঙ্ক ব্যবহার করে খোলা হয় তাহলে বর্তমান লিঙ্কের জন্য ব্যবহার করার জন্য ডায়নামিক লিঙ্ক ডোমেন (বা সাবডোমেন) সেট করে। যেহেতু একাধিক গতিশীল লিঙ্ক ডোমেন প্রতি প্রকল্পে কনফিগার করা যেতে পারে, এই ক্ষেত্রটি স্পষ্টভাবে একটি বেছে নেওয়ার ক্ষমতা প্রদান করে। যদি কোনটি প্রদান করা না হয়, প্রথম ডোমেনটি ডিফল্টরূপে ব্যবহৃত হয়। |
উদ্দেশ্য-C
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
URL | NSString | লিঙ্ক সেট করে (স্টেট/কন্টিনিউ ইউআরএল) যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ রয়েছে:
|
iOSBundleID | NSString | বান্ডিল আইডি সেট করে। এটি ইনস্টল করা থাকলে এটি একটি Apple অ্যাপে লিঙ্কটি খোলার চেষ্টা করবে। অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। |
androidPackageName | NSString | অ্যান্ড্রয়েড প্যাকেজের নাম সেট করে। এটি ইনস্টল করা থাকলে এটি একটি অ্যান্ড্রয়েড অ্যাপে লিঙ্কটি খুলতে চেষ্টা করবে। |
androidInstallIfNotAvailable | বুল | যদি ডিভাইসটি সমর্থন করে এবং অ্যাপটি ইতিমধ্যে ইনস্টল না করা থাকে তবে Android অ্যাপটি ইনস্টল করতে হবে কিনা তা নির্দিষ্ট করে। যদি এই ক্ষেত্রটি প্যাকেজনাম ব্যতীত প্রদান করা হয়, তাহলে একটি ত্রুটি নিক্ষেপ করা হয় যা ব্যাখ্যা করে যে প্যাকেজনামটি এই ক্ষেত্রের সাথে একত্রে প্রদান করা আবশ্যক। |
androidMinimumVersion | NSString | অ্যাপটির ন্যূনতম সংস্করণ যা এই প্রবাহে সমর্থিত। যদি ন্যূনতম সংস্করণ নির্দিষ্ট করা থাকে, এবং অ্যাপটির একটি পুরানো সংস্করণ ইনস্টল করা থাকে, ব্যবহারকারীকে অ্যাপটি আপগ্রেড করতে প্লে স্টোরে নিয়ে যাওয়া হয়। অ্যান্ড্রয়েড অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। |
handleCodeInApp | বুল | ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে। |
dynamicLinkDomain | NSString | যদি Firebase ডায়নামিক লিঙ্ক ব্যবহার করে খোলা হয় তাহলে বর্তমান লিঙ্কের জন্য ব্যবহার করার জন্য ডায়নামিক লিঙ্ক ডোমেন (বা সাবডোমেন) সেট করে। যেহেতু একাধিক গতিশীল লিঙ্ক ডোমেন প্রতি প্রকল্পে কনফিগার করা যেতে পারে, এই ক্ষেত্রটি স্পষ্টভাবে একটি বেছে নেওয়ার ক্ষমতা প্রদান করে। যদি কোনটি প্রদান করা না হয়, প্রথম ডোমেনটি ডিফল্টরূপে ব্যবহৃত হয়। |
নিচের উদাহরণে দেখানো হয়েছে কিভাবে একটি ইমেল ভেরিফিকেশন লিঙ্ক পাঠাতে হয় যা প্রথমে ফায়ারবেস ডায়নামিক লিঙ্ক হিসেবে কাস্টম ডায়নামিক লিঙ্ক ডোমেন example.page.link
(iOS অ্যাপ com.example.ios
বা Android অ্যাপ com.example.android
যেখানে ইতিমধ্যে ইনস্টল না থাকলে অ্যাপটি ইনস্টল হবে এবং সর্বনিম্ন সংস্করণ 12
)। ডিপ লিঙ্কটিতে অবিরত URL পেলোড থাকবে https://www.example.com/?email=user@example.com
।
সুইফট
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", installIfNotAvailable:true, minimumVersion:"12") // When multiple custom dynamic link domains are defined, specify which one to use. actionCodeSettings.dynamicLinkDomain = "example.page.link" user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })
উদ্দেশ্য-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; // When multiple custom dynamic link domains are defined, specify which one to use. actionCodeSettings.dynamicLinkDomain = @"example.page.link"; [actionCodeSettings setAndroidPackageName:@"com.example.android" installIfNotAvailable:YES minimumVersion:'12']; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
ফায়ারবেস ডায়নামিক লিঙ্কগুলি কনফিগার করা হচ্ছে
Firebase Auth ফায়ারবেস ডায়নামিক লিঙ্কগুলি ব্যবহার করে একটি লিঙ্ক পাঠানোর সময় যা একটি মোবাইল অ্যাপ্লিকেশনে খোলার জন্য। এই বৈশিষ্ট্যটি ব্যবহার করার জন্য, ডায়নামিক লিঙ্কগুলিকে Firebase কনসোলে কনফিগার করতে হবে৷
ফায়ারবেস ডায়নামিক লিঙ্কগুলি সক্ষম করুন:
- Firebase কনসোলে , Dynamic Links বিভাগ খুলুন।
আপনি যদি এখনও Dynamic Links শর্তাদি গ্রহণ না করে থাকেন এবং একটি Dynamic Links ডোমেন তৈরি না করে থাকেন, তাহলে এখনই করুন৷
আপনি যদি ইতিমধ্যেই একটি Dynamic Links ডোমেন তৈরি করে থাকেন, তবে এটি নোট করুন। একটি Dynamic Links ডোমেন সাধারণত নিম্নলিখিত উদাহরণের মত দেখায়:
example.page.link
ইনকামিং লিঙ্কটি আটকাতে আপনি যখন আপনার Apple বা Android অ্যাপ কনফিগার করবেন তখন আপনার এই মানটির প্রয়োজন হবে।
অ্যান্ড্রয়েড অ্যাপ্লিকেশন কনফিগার করা:
- আপনি যদি আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, তাহলে Firebase কনসোল প্রকল্প সেটিংসে Android প্যাকেজের নাম উল্লেখ করতে হবে। এছাড়াও, আবেদনের শংসাপত্রের SHA-1 এবং SHA-256 প্রদান করতে হবে।
- আপনার AndroidManifest.xml ফাইলে ডিপ লিঙ্কের জন্য অভিপ্রায় ফিল্টার কনফিগার করতে হবে।
- এই বিষয়ে আরও জানতে, অ্যান্ড্রয়েড ডায়নামিক লিঙ্কগুলি প্রাপ্তির নির্দেশাবলী পড়ুন।
অ্যাপল অ্যাপ্লিকেশন কনফিগার করা:
- আপনি যদি আপনার অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, বান্ডেল আইডিটি Firebase কনসোল প্রকল্প সেটিংসে নির্দিষ্ট করতে হবে। এছাড়াও, অ্যাপ স্টোর আইডি এবং অ্যাপল ডেভেলপার টিম আইডিও নির্দিষ্ট করতে হবে।
- এছাড়াও আপনাকে আপনার অ্যাপ্লিকেশন ক্ষমতাগুলির মধ্যে একটি অ্যাসোসিয়েটেড ডোমেন হিসাবে FDL ইউনিভার্সাল লিঙ্ক ডোমেন কনফিগার করতে হবে।
- আপনি যদি আপনার অ্যাপ্লিকেশনটি iOS সংস্করণ 8 এবং তার নীচে বিতরণ করার পরিকল্পনা করেন, তাহলে আপনাকে আগত URLগুলির জন্য একটি কাস্টম স্কিম হিসাবে আপনার বান্ডেল আইডি সেট করতে হবে৷
- এই বিষয়ে আরও জানতে, অ্যাপল প্ল্যাটফর্মের ডায়নামিক লিঙ্ক নির্দেশাবলী প্রাপ্তি পড়ুন।
একটি ওয়েব অ্যাপ্লিকেশনে ইমেল ক্রিয়াকলাপ পরিচালনা করা
আপনি নির্দিষ্ট করতে পারেন যে আপনি প্রথমে একটি ওয়েব অ্যাপ্লিকেশন থেকে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান এবং তারপর সফলভাবে সমাপ্তির পরে অন্য ওয়েব পৃষ্ঠা বা মোবাইল অ্যাপ্লিকেশনে পুনঃনির্দেশ করতে চান, যদি মোবাইল অ্যাপ্লিকেশনটি উপলব্ধ থাকে। FIRActionCodeSettings
(Obj-C) বা ActionCodeSettings
(Swift) অবজেক্টে handleCodeInApp
false
সেট করে এটি করা হয়। যদিও একটি বান্ডেল আইডি বা অ্যান্ড্রয়েড প্যাকেজের নাম প্রয়োজন হয় না, তবে সেগুলি প্রদান করলে ব্যবহারকারীকে ইমেল অ্যাকশন কোড সমাপ্তিতে নির্দিষ্ট অ্যাপে পুনঃনির্দেশিত করার অনুমতি দেবে।
এখানে ব্যবহৃত ওয়েব ইউআরএলটি ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা হয়েছে। সমস্ত প্রকল্পের জন্য একটি ডিফল্ট একটি ব্যবস্থা করা হয়েছে। ইমেল অ্যাকশন হ্যান্ডলারকে কীভাবে কাস্টমাইজ করতে হয় সে সম্পর্কে আরও জানতে ইমেল হ্যান্ডলার কাস্টমাইজ করা দেখুন।
এই ক্ষেত্রে, continueURL
ক্যোয়ারী প্যারামিটারের মধ্যে লিঙ্কটি একটি FDL লিঙ্ক হবে যার পেলোড হল ActionCodeSettings
অবজেক্টে নির্দিষ্ট করা URL
। আপনি যখন কোনো অতিরিক্ত নির্ভরতা ছাড়াই আপনার অ্যাপ থেকে ইনকামিং লিঙ্কটিকে আটকাতে এবং পরিচালনা করতে পারেন, আমরা আপনার জন্য গভীর লিঙ্কটি পার্স করতে FDL ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিই।
ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, oobCode
ক্যোয়ারী প্যারামিটার থেকে অ্যাকশন কোডটিকে ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর পরিবর্তনটি কার্যকর হওয়ার জন্য applyActionCode
এর মাধ্যমে প্রয়োগ করতে হবে, যেমন ইমেল যাচাই করা হবে৷
একটি মোবাইল অ্যাপ্লিকেশনে ইমেল ক্রিয়াকলাপ পরিচালনা করা
আপনি প্রথমে আপনার মোবাইল অ্যাপ্লিকেশনের মধ্যে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান কিনা তা নির্দিষ্ট করতে পারেন, যদি এটি ইনস্টল করা থাকে। অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলির সাথে, আপনার কাছে androidInstallIfNotAvailable
এর মাধ্যমে নির্দিষ্ট করার ক্ষমতাও রয়েছে যে অ্যাপটি ইনস্টল করা হবে যদি ডিভাইসটি এটি সমর্থন করে এবং এটি ইতিমধ্যে ইনস্টল না থাকে। যদি লিঙ্কটি এমন একটি ডিভাইস থেকে ক্লিক করা হয় যা মোবাইল অ্যাপ্লিকেশন সমর্থন করে না, তবে এটি পরিবর্তে একটি ওয়েব পৃষ্ঠা থেকে খোলা হয়৷ FIRActionCodeSettings
(Obj-C) বা ActionCodeSettings
(Swift) অবজেক্টে handleCodeInApp
true
সেট করে এটি করা হয়। মোবাইল অ্যাপ্লিকেশনের অ্যান্ড্রয়েড প্যাকেজ নাম বা বান্ডেল আইডিও নির্দিষ্ট করতে হবে৷ এখানে ব্যবহৃত ফলব্যাক ওয়েব URL, যখন কোনো মোবাইল অ্যাপ উপলব্ধ না থাকে, এটি ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা হয়৷ সমস্ত প্রকল্পের জন্য একটি ডিফল্ট একটি ব্যবস্থা করা হয়েছে। ইমেল অ্যাকশন হ্যান্ডলারকে কীভাবে কাস্টমাইজ করতে হয় সে সম্পর্কে আরও জানতে ইমেল হ্যান্ডলার কাস্টমাইজ করা দেখুন।
এই ক্ষেত্রে, ব্যবহারকারীকে পাঠানো মোবাইল অ্যাপের লিঙ্কটি হবে একটি FDL লিঙ্ক যার পেলোড হল অ্যাকশন কোড URL, কনসোলে কনফিগার করা, ক্যোয়ারী প্যারামিটার oobCode
, mode
, apiKey
এবং continueUrl
। পরবর্তীটি FIRActionCodeSettings
(Obj-C) বা ActionCodeSettings
(Swift) অবজেক্টে নির্দিষ্ট করা আসল URL
হবে। আপনি যখন কোনো অতিরিক্ত নির্ভরতা ছাড়াই আপনার অ্যাপ থেকে ইনকামিং লিঙ্কটিকে আটকাতে এবং পরিচালনা করতে পারেন, আমরা আপনার জন্য গভীর লিঙ্কটি পার্স করতে FDL ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিই। কাস্টমাইজিং ইমেল হ্যান্ডলার বিভাগে বর্ণিত ওয়েব ফ্লো থেকে কীভাবে এটি পরিচালনা করা হয় তার অনুরূপ একটি মোবাইল অ্যাপ্লিকেশন থেকে অ্যাকশন কোড সরাসরি প্রয়োগ করা যেতে পারে।
ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, oobCode
ক্যোয়ারী প্যারামিটার থেকে অ্যাকশন কোডটি ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর পরিবর্তনটি কার্যকর হওয়ার জন্য applyActionCode
এর মাধ্যমে প্রয়োগ করতে হবে, যেমন ইমেল যাচাই করা হবে।