পাসওয়ার্ড রিসেট বা ব্যবহারকারীর ইমেল যাচাই করার জন্য ইমেল অ্যাকশন পাঠানোর সময় আপনি একটি 'continue URL'-এর মাধ্যমে স্টেট পাস করতে পারেন। এর ফলে, কাজটি সম্পন্ন হওয়ার পর ব্যবহারকারী অ্যাপে ফিরে যেতে পারেন। এছাড়াও, আপনি নির্দিষ্ট করে দিতে পারেন যে, মোবাইল অ্যাপ্লিকেশন ইনস্টল হওয়ার পর ইমেল অ্যাকশন লিঙ্কটি কোনো ওয়েব পেজের পরিবর্তে সরাসরি সেখান থেকে হ্যান্ডেল করা হবে কি না।
নিম্নলিখিত সাধারণ পরিস্থিতিগুলিতে এটি অত্যন্ত কার্যকর হতে পারে:
বর্তমানে লগ ইন করা নেই এমন কোনো ব্যবহারকারী এমন কোনো কন্টেন্ট অ্যাক্সেস করার চেষ্টা করতে পারেন, যার জন্য সাইন ইন করা প্রয়োজন। তবে, ব্যবহারকারী হয়তো তার পাসওয়ার্ড ভুলে গেছেন এবং সেই কারণে পাসওয়ার্ড রিসেট করার প্রক্রিয়াটি চালু করছেন। এই প্রক্রিয়াটি শেষে, ব্যবহারকারী অ্যাপের সেই অংশে ফিরে যেতে চান, যেখানে তিনি অ্যাক্সেস করার চেষ্টা করছিলেন।
একটি অ্যাপ্লিকেশন শুধুমাত্র যাচাইকৃত অ্যাকাউন্টগুলোকেই অ্যাক্সেস দিতে পারে। উদাহরণস্বরূপ, একটি নিউজলেটারে সাবস্ক্রাইব করার আগে ব্যবহারকারীকে তার ইমেল যাচাই করতে হতে পারে। ব্যবহারকারী ইমেল যাচাইকরণ প্রক্রিয়াটি সম্পন্ন করবেন এবং সাবস্ক্রিপশনটি সম্পূর্ণ করার জন্য অ্যাপে ফিরে যাওয়ার প্রত্যাশা করবেন।
অন্যান্য ক্ষেত্রে, ব্যবহারকারী হয়তো তাঁর মোবাইল ডিভাইস থেকে প্রক্রিয়াটি শুরু করেছেন এবং যাচাইকরণের পর ব্রাউজারের পরিবর্তে তাঁর মোবাইল অ্যাপে ফিরে যেতে চান।
কন্টিনিউ ইউআরএল (continue URL)-এর মাধ্যমে স্টেট (state) পাস করার ক্ষমতা হলো ফায়ারবেস অথ (Firebase Auth)-এর একটি শক্তিশালী বৈশিষ্ট্য, যা ব্যবহারকারীর অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
ইমেল অ্যাকশনে একটি কন্টিনিউ ইউআরএল-এর অবস্থা প্রেরণ করা
একটি কন্টিনিউ ইউআরএল নিরাপদে পাস করার জন্য, আপনাকে ইউআরএল-এর জন্য ডোমেইনটিকে একটি অনুমোদিত ডোমেইন হিসেবে যুক্ত করতে হবে:
Firebase কনসোলে, Security > Authentication > Settings ট্যাবে যান।
অনুমোদিত ডোমেইন বিভাগে, 'ডোমেইন যোগ করুন'- এ ক্লিক করুন এবং URL-টি যোগ করুন।
পাসওয়ার্ড রিসেট ইমেল বা ভেরিফিকেশন ইমেল পাঠানোর সময় একটি ActionCodeSettings ইনস্ট্যান্স প্রদান করতে হয়। এটি সংশ্লিষ্ট ActionCodeSettings.Builder ক্লাস দিয়ে তৈরি করা যায়, যেটিতে নিম্নলিখিত মেথডগুলো রয়েছে:
| পদ্ধতি | বর্ণনা |
|---|---|
setUrl(String url) | লিঙ্কটি (স্টেট/কন্টিনিউ ইউআরএল) সেট করে, যার বিভিন্ন প্রেক্ষাপটে ভিন্ন ভিন্ন অর্থ রয়েছে:
|
setIOSBundleId(String iOSBundleId) | আইওএস বান্ডেল আইডি সেট করে, যা Firebase Authentication নির্ধারণ করতে সাহায্য করে যে এটি অ্যাপল ডিভাইসে খোলার জন্য শুধুমাত্র ওয়েব-ভিত্তিক নাকি মোবাইল লিঙ্ক তৈরি করবে। |
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) | অ্যান্ড্রয়েড প্যাকেজ নামটি সেট করে, যা Firebase Authentication নির্ধারণ করতে সাহায্য করে যে এটি একটি শুধুমাত্র-ওয়েব নাকি মোবাইল লিঙ্ক তৈরি করবে যা একটি অ্যান্ড্রয়েড ডিভাইসে খোলা হবে। |
setHandleCodeInApp(boolean status) | ইমেইল অ্যাকশন লিঙ্কটি প্রথমে মোবাইল অ্যাপে খুলবে নাকি ওয়েব লিঙ্কে খুলবে। এর ডিফল্ট মান হলো 'ফলস'। 'ট্রু' সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসেবে পাঠানো হবে এবং অ্যাপটি ইনস্টল করা থাকলে সেটি দ্বারা খোলা হবে। 'ফলস' এর ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর 'কন্টিনিউ' করলে, অ্যাপটি ইনস্টল করা থাকলে সেখানে রিডাইরেক্ট করবে। |
setLinkDomain(String customDomain) | যখন কোনো প্রোজেক্টের জন্য কাস্টম Hosting লিঙ্ক ডোমেইন নির্ধারণ করা হয়, তখন নির্দিষ্ট মোবাইল অ্যাপ দ্বারা লিঙ্কটি খোলার জন্য কোনটি ব্যবহার করা হবে তা নির্দিষ্ট করে দিন। অন্যথায়, ডিফল্ট ডোমেইনটি স্বয়ংক্রিয়ভাবে নির্বাচিত হয় (উদাহরণস্বরূপ,PROJECT_ID .firebaseapp.com ) |
setDynamicLinkDomain(String dynamicLinkDomain) | অপ্রচলিত। এই প্যারামিটারটি উল্লেখ করবেন না। |
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি ইমেল যাচাইকরণ লিঙ্ক পাঠাতে হয় যা প্রথমে একটি মোবাইল অ্যাপে খুলবে। ডিপ লিঙ্কটিতে http://www.example.com/verify?uid=1234 এই কন্টিনিউ ইউআরএল পেলোডটি থাকবে।
Kotlin
val auth = Firebase.auth val user = auth.currentUser!! val url = "http://www.example.com/verify?uid=" + user.uid val actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build() user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Email sent.") } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.getCurrentUser(); String url = "http://www.example.com/verify?uid=" + user.getUid(); ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build(); user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
ফায়ারবেস হোস্টিং লিঙ্কগুলি কনফিগার করা
মোবাইল অ্যাপ্লিকেশনে খোলার জন্য কোনো লিঙ্ক পাঠানোর সময় Firebase Authentication Firebase Hosting ব্যবহার করে। এই ফিচারটি ব্যবহার করার জন্য, Firebase কনসোলে হোস্টিং লিঙ্কগুলো কনফিগার করতে হবে।
অ্যান্ড্রয়েড অ্যাপ্লিকেশন কনফিগার করা:
- আপনি যদি আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, তাহলে Firebase কনসোল প্রজেক্ট সেটিংসে আপনার অ্যাপের প্যাকেজ নামটি উল্লেখ করতে হবে। এছাড়াও, অ্যাপ্লিকেশন সার্টিফিকেটের SHA-1 এবং SHA-256 প্রদান করতে হবে।
- আপনাকে আপনার
AndroidManifest.xmlফাইলে ডিপ লিঙ্কের জন্য ইন্টেন্ট ফিল্টারটিও কনফিগার করতে হবে। - এই বিষয়ে আরও জানতে, “অ্যান্ড্রয়েড হোস্টিং লিঙ্ক গ্রহণ” নির্দেশাবলী দেখুন।
iOS অ্যাপ্লিকেশন কনফিগার করা:
- আপনি যদি আপনার iOS অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, তাহলে আপনাকে আপনার অ্যাপ্লিকেশন ক্যাপাবিলিটিজে Hosting লিঙ্ক ডোমেনটিকে একটি অ্যাসোসিয়েটেড ডোমেন হিসেবে কনফিগার করতে হবে।
- এই বিষয়ে আরও জানতে, "iOS হোস্টিং লিঙ্ক গ্রহণ" নির্দেশাবলী দেখুন।
একটি ওয়েব অ্যাপ্লিকেশনে ইমেল সংক্রান্ত কার্যকলাপ পরিচালনা করা
আপনি প্রথমে একটি ওয়েব অ্যাপ্লিকেশন থেকে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান এবং সফলভাবে সম্পন্ন হওয়ার পর অন্য কোনো ওয়েব পেজ বা মোবাইল অ্যাপ্লিকেশনে রিডাইরেক্ট করতে চান কিনা, তা নির্দিষ্ট করতে পারেন (যদি মোবাইল অ্যাপ্লিকেশনটি উপলব্ধ থাকে)। এটি করার জন্য ActionCodeSettings.Builder অবজেক্টে setHandleCodeInApp(false) কল করতে হয়। যদিও একটি iOS বান্ডেল আইডি বা অ্যান্ড্রয়েড প্যাকেজ নেম আবশ্যক নয়, তবে সেগুলি প্রদান করলে ইমেল অ্যাকশন কোড সম্পন্ন হওয়ার পর ব্যবহারকারীকে নির্দিষ্ট অ্যাপে রিডাইরেক্ট করা যাবে।
এখানে ব্যবহৃত ওয়েব ইউআরএলটি ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা হয়েছে। সমস্ত প্রোজেক্টের জন্য একটি ডিফল্ট ইউআরএল সরবরাহ করা থাকে। ইমেল অ্যাকশন হ্যান্ডলার কীভাবে কাস্টমাইজ করতে হয় সে সম্পর্কে আরও জানতে, 'কাস্টমাইজিং ইমেল হ্যান্ডলারস ' অংশটি দেখুন।
এক্ষেত্রে, continueUrl কোয়েরি প্যারামিটারের ভেতরের লিঙ্কটি একটি Hosting লিঙ্ক হবে, যার পেলোড হলো ActionCodeSettings অবজেক্টে নির্দিষ্ট করা URL ।
ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, পরিবর্তনটি কার্যকর করার জন্য (অর্থাৎ ইমেলটি যাচাই করার জন্য), oobCode কোয়েরি প্যারামিটার থেকে অ্যাকশন কোডটি ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর applyActionCode এর মাধ্যমে প্রয়োগ করতে হবে।
মোবাইল অ্যাপ্লিকেশনে ইমেল সংক্রান্ত কার্যকলাপ পরিচালনা করা
আপনার মোবাইল অ্যাপ্লিকেশনটি ইনস্টল করা থাকলে, আপনি অ্যাকশন কোড লিঙ্কটি প্রথমে সেটির মধ্যেই হ্যান্ডেল করতে চান কিনা তা নির্দিষ্ট করতে পারেন। যদি এমন কোনো ডিভাইস থেকে লিঙ্কটিতে ক্লিক করা হয় যা মোবাইল অ্যাপ্লিকেশনটি সাপোর্ট করে না, তবে এর পরিবর্তে এটি একটি ওয়েব পেজ থেকে খোলা হয়। এটি করার জন্য ActionCodeSettings.Builder অবজেক্টে setHandleCodeInApp(true) কল করতে হয়। মোবাইল অ্যাপ্লিকেশনটির অ্যান্ড্রয়েড প্যাকেজ নেম অথবা আইওএস বান্ডেল আইডি-ও উল্লেখ করতে হবে।
যখন কোনো মোবাইল অ্যাপ উপলব্ধ থাকে না, তখন এখানে ব্যবহৃত ফলব্যাক ওয়েব ইউআরএলটি হলো ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা ইউআরএলটি। সমস্ত প্রোজেক্টের জন্য একটি ডিফল্ট ইউআরএল সরবরাহ করা থাকে। ইমেল অ্যাকশন হ্যান্ডলার কীভাবে কাস্টমাইজ করতে হয় সে সম্পর্কে আরও জানতে, 'ইমেল হ্যান্ডলার কাস্টমাইজ করা' অংশটি দেখুন।
এক্ষেত্রে, ব্যবহারকারীর কাছে পাঠানো মোবাইল অ্যাপ লিঙ্কটি একটি Hosting লিঙ্ক হবে, যার পেলোড হলো কনসোলে কনফিগার করা অ্যাকশন কোড ইউআরএল, সাথে থাকবে oobCode , mode , apiKey এবং continueUrl এই কোয়েরি প্যারামিটারগুলো। শেষেরটি হবে ActionCodeSettings অবজেক্টে নির্দিষ্ট করা মূল URL । ইমেল হ্যান্ডলার কাস্টমাইজ করার অংশে বর্ণিত ওয়েব ফ্লো থেকে যেভাবে অ্যাকশন কোডটি পরিচালনা করা হয়, ঠিক একইভাবে একটি মোবাইল অ্যাপ্লিকেশন থেকেও এটি সরাসরি প্রয়োগ করা যেতে পারে।
ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, পরিবর্তনটি কার্যকর করার জন্য (অর্থাৎ ইমেলটি যাচাই করার জন্য), oobCode কোয়েরি প্যারামিটার থেকে অ্যাকশন কোডটি ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর applyActionCode এর মাধ্যমে প্রয়োগ করতে হবে।