পাসওয়ার্ড রিসেট করার জন্য ইমেল ক্রিয়া পাঠানো বা ব্যবহারকারীর ইমেল যাচাই করার সময় আপনি একটি অবিরত URL এর মাধ্যমে রাজ্য পাস করতে পারেন। এটি ব্যবহারকারীকে অ্যাকশন সম্পন্ন হওয়ার পরে অ্যাপে ফিরে যাওয়ার ক্ষমতা প্রদান করে। উপরন্তু, আপনি নির্দিষ্ট করতে পারেন যে ইমেল অ্যাকশন লিঙ্কটি সরাসরি মোবাইল অ্যাপ্লিকেশন থেকে পরিচালনা করা হবে কিনা যখন এটি একটি ওয়েব পৃষ্ঠার পরিবর্তে ইনস্টল করা হয়।
নিম্নলিখিত সাধারণ পরিস্থিতিতে এটি অত্যন্ত দরকারী হতে পারে:
একজন ব্যবহারকারী, বর্তমানে লগ ইন করা নেই, এমন সামগ্রী অ্যাক্সেস করার চেষ্টা করতে পারে যার জন্য ব্যবহারকারীকে সাইন ইন করতে হবে৷ যাইহোক, ব্যবহারকারী তাদের পাসওয়ার্ড ভুলে গেছেন এবং সেইজন্য পাসওয়ার্ড রিসেট প্রবাহকে ট্রিগার করতে পারে৷ প্রবাহের শেষে, ব্যবহারকারী অ্যাপের যে বিভাগে তারা অ্যাক্সেস করার চেষ্টা করছেন সেখানে ফিরে যাওয়ার প্রত্যাশা করে।
একটি অ্যাপ্লিকেশন শুধুমাত্র যাচাইকৃত অ্যাকাউন্টগুলিতে অ্যাক্সেসের প্রস্তাব দিতে পারে। উদাহরণস্বরূপ, একটি নিউজলেটার অ্যাপ্লিকেশন ব্যবহারকারীর সদস্যতা নেওয়ার আগে তাদের ইমেল যাচাই করতে হতে পারে। ব্যবহারকারী ইমেল যাচাইকরণ প্রবাহের মধ্য দিয়ে যাবেন এবং তাদের সাবস্ক্রিপশন সম্পূর্ণ করার জন্য অ্যাপে ফিরে আসার আশা করবেন।
সাধারণভাবে, যখন একজন ব্যবহারকারী অ্যাপল অ্যাপে পাসওয়ার্ড রিসেট বা ইমেল যাচাইকরণ প্রবাহ শুরু করেন তখন তারা অ্যাপের মধ্যে প্রবাহটি সম্পূর্ণ করার আশা করেন; ইউআরএল চালিয়ে যাওয়ার মাধ্যমে স্টেট পাস করার ক্ষমতা এটিকে সম্ভব করে তোলে।
একটি অবিরত ইউআরএলের মাধ্যমে স্টেট পাস করার ক্ষমতা থাকা একটি শক্তিশালী বৈশিষ্ট্য যা Firebase Auth প্রদান করে এবং যা ব্যবহারকারীর অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
ইমেল অ্যাকশনে স্টেট/কন্টিনিউ ইউআরএল পাস করা
একটি অবিরত URL নিরাপদে পাস করার জন্য, URL-এর ডোমেনটিকে Firebase কনসোলে সাদা তালিকাভুক্ত করতে হবে। সাইন-ইন পদ্ধতি ট্যাবের অধীনে অনুমোদিত ডোমেনের তালিকায় এই ডোমেনটি যোগ করে প্রমাণীকরণ বিভাগে এটি করা হয় যদি এটি ইতিমধ্যে সেখানে না থাকে।
একটি পাসওয়ার্ড রিসেট ইমেল বা একটি যাচাইকরণ ইমেল পাঠানোর সময় একটি FIRActionCodeSettings
উদাহরণ প্রদান করা প্রয়োজন৷ এই ইন্টারফেস নিম্নলিখিত পরামিতি লাগে:
সুইফট
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
URL | স্ট্রিং | লিঙ্ক সেট করে (স্টেট/কন্টিনিউ ইউআরএল) যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ রয়েছে:
|
iOSBundleID | স্ট্রিং | বান্ডিল আইডি সেট করে। এটি ইনস্টল করা থাকলে এটি একটি Apple অ্যাপে লিঙ্কটি খুলতে চেষ্টা করবে। অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। যদি কোনো বান্ডেল আইডি দেওয়া না থাকে, তাহলে এই ফিল্ডের মান অ্যাপের প্রধান বান্ডেলের বান্ডেল আইডিতে সেট করা হয়। |
androidPackageName | স্ট্রিং | অ্যান্ড্রয়েড প্যাকেজের নাম সেট করে। এটি ইনস্টল করা থাকলে এটি একটি অ্যান্ড্রয়েড অ্যাপে লিঙ্কটি খুলতে চেষ্টা করবে। |
androidInstallIfNotAvailable | বুল | ডিভাইসটি সমর্থন করলে এবং অ্যাপটি ইতিমধ্যে ইনস্টল না থাকলে Android অ্যাপটি ইনস্টল করতে হবে কিনা তা নির্দিষ্ট করে। যদি এই ক্ষেত্রটি প্যাকেজনাম ছাড়াই প্রদান করা হয়, তাহলে এই ক্ষেত্রের সাথে প্যাকেজনামটি অবশ্যই প্রদান করতে হবে তা ব্যাখ্যা করে একটি ত্রুটি দেখা যায়। |
androidMinimumVersion | স্ট্রিং | অ্যাপটির ন্যূনতম সংস্করণ যা এই প্রবাহে সমর্থিত। যদি ন্যূনতম সংস্করণ নির্দিষ্ট করা থাকে, এবং অ্যাপটির একটি পুরানো সংস্করণ ইনস্টল করা থাকে, ব্যবহারকারীকে অ্যাপটি আপগ্রেড করতে প্লে স্টোরে নিয়ে যাওয়া হয়। অ্যান্ড্রয়েড অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। |
handleCodeInApp | বুল | ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে। |
dynamicLinkDomain | স্ট্রিং | যদি Firebase ডায়নামিক লিঙ্ক ব্যবহার করে খোলা হয় তাহলে বর্তমান লিঙ্কের জন্য ব্যবহার করার জন্য ডায়নামিক লিঙ্ক ডোমেন (বা সাবডোমেন) সেট করে। যেহেতু একাধিক গতিশীল লিঙ্ক ডোমেন প্রতি প্রকল্পে কনফিগার করা যেতে পারে, এই ক্ষেত্রটি স্পষ্টভাবে একটি বেছে নেওয়ার ক্ষমতা প্রদান করে। যদি কোনটি প্রদান করা না হয়, প্রথম ডোমেনটি ডিফল্টরূপে ব্যবহৃত হয়। |
উদ্দেশ্য গ
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
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, minumumVersion:"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. })
উদ্দেশ্য গ
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 কনসোলে , ডায়নামিক লিঙ্ক বিভাগ খুলুন।
আপনি যদি এখনও ডায়নামিক লিঙ্কের শর্তাদি গ্রহণ না করে থাকেন এবং একটি ডায়নামিক লিঙ্ক ডোমেন তৈরি না করেন তবে এখনই তা করুন৷
আপনি যদি ইতিমধ্যে একটি ডায়নামিক লিঙ্ক ডোমেন তৈরি করে থাকেন, তবে এটি নোট করুন। একটি ডায়নামিক লিঙ্ক ডোমেন সাধারণত নিম্নলিখিত উদাহরণের মত দেখায়:
example.page.link
যখন আপনি আপনার Apple বা Android অ্যাপ কনফিগার করবেন তখন ইনকামিং লিঙ্কটিকে আটকাতে আপনার এই মানটির প্রয়োজন হবে৷
অ্যান্ড্রয়েড অ্যাপ্লিকেশন কনফিগার করা:
- আপনি যদি আপনার 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
সেট করে এটি করা হয়। মোবাইল অ্যাপ্লিকেশনের অ্যান্ড্রয়েড প্যাকেজ নাম বা বান্ডেল আইডিও নির্দিষ্ট করতে হবে। এখানে ব্যবহৃত ফলব্যাক ওয়েব ইউআরএল, যখন কোনো মোবাইল অ্যাপ উপলব্ধ না থাকে, সেটি ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা হয়। একটি ডিফল্ট একটি সব প্রকল্পের জন্য বিধান করা হয়. ইমেল অ্যাকশন হ্যান্ডলার কাস্টমাইজ করার বিষয়ে আরও জানতে ইমেল হ্যান্ডলার কাস্টমাইজ করা দেখুন।
এই ক্ষেত্রে, ব্যবহারকারীকে পাঠানো মোবাইল অ্যাপের লিঙ্কটি হবে একটি FDL লিঙ্ক যার পেলোড হল অ্যাকশন কোড URL, কনসোলে কনফিগার করা, ক্যোয়ারী প্যারামিটার oobCode
, mode
, apiKey
এবং continueUrl
। পরবর্তীটি FIRActionCodeSettings
(Obj-C) বা ActionCodeSettings
(Swift) অবজেক্টে নির্দিষ্ট করা আসল URL
হবে। আপনি যখন কোনো অতিরিক্ত নির্ভরতা ছাড়াই আপনার অ্যাপ থেকে ইনকামিং লিঙ্কটিকে আটকাতে এবং পরিচালনা করতে পারেন, আমরা আপনার জন্য গভীর লিঙ্কটি পার্স করতে FDL ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিই। কাস্টমাইজিং ইমেল হ্যান্ডলার বিভাগে বর্ণিত ওয়েব ফ্লো থেকে কীভাবে এটি পরিচালনা করা হয় তার অনুরূপ একটি মোবাইল অ্যাপ্লিকেশন থেকে অ্যাকশন কোড সরাসরি প্রয়োগ করা যেতে পারে।
ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, oobCode
ক্যোয়ারী প্যারামিটারের অ্যাকশন কোডটিকে ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর পরিবর্তনটি কার্যকর হওয়ার জন্য applyActionCode
এর মাধ্যমে প্রয়োগ করতে হবে, যেমন ইমেল যাচাই করা হবে৷