ইমেল অ্যাকশনে পাসিং স্টেট

পাসওয়ার্ড রিসেট করার জন্য বা ব্যবহারকারীর ইমেল যাচাই করার জন্য ইমেল অ্যাকশন পাঠানোর সময় আপনি একটি অবিরত URL-এর মাধ্যমে রাজ্য পাস করতে পারেন। এটি ব্যবহারকারীকে অ্যাকশন শেষ হওয়ার পরে অ্যাপে ফিরে যাওয়ার ক্ষমতা প্রদান করে। উপরন্তু, আপনি একটি ওয়েব পৃষ্ঠার পরিবর্তে ইনস্টল করা হলে মোবাইল অ্যাপ্লিকেশন থেকে সরাসরি ইমেল অ্যাকশন লিঙ্ক পরিচালনা করবেন কিনা তা নির্দিষ্ট করতে পারেন৷

নিম্নলিখিত সাধারণ পরিস্থিতিতে এটি অত্যন্ত দরকারী হতে পারে:

  • একজন ব্যবহারকারী, বর্তমানে লগ ইন করা নেই, সে এমন সামগ্রী অ্যাক্সেস করার চেষ্টা করতে পারে যার জন্য ব্যবহারকারীকে সাইন ইন করতে হবে৷ যাইহোক, ব্যবহারকারী তাদের পাসওয়ার্ড ভুলে গেছেন এবং সেইজন্য পাসওয়ার্ড রিসেট ফ্লো ট্রিগার করতে পারেন৷ প্রবাহের শেষে, ব্যবহারকারী অ্যাপের যে বিভাগে তারা অ্যাক্সেস করার চেষ্টা করছেন সেখানে ফিরে যাওয়ার প্রত্যাশা করে।

  • একটি অ্যাপ্লিকেশন শুধুমাত্র যাচাইকৃত অ্যাকাউন্টগুলিতে অ্যাক্সেসের প্রস্তাব দিতে পারে। উদাহরণস্বরূপ, একটি নিউজলেটার অ্যাপের সদস্যতা নেওয়ার আগে ব্যবহারকারীকে তাদের ইমেল যাচাই করতে হতে পারে। ব্যবহারকারী ইমেল যাচাইকরণ প্রবাহের মধ্য দিয়ে যাবে এবং তাদের সাবস্ক্রিপশন সম্পূর্ণ করার জন্য অ্যাপে ফিরে আসার আশা করবে।

  • সাধারণভাবে, যখন একজন ব্যবহারকারী অ্যাপল অ্যাপে পাসওয়ার্ড রিসেট বা ইমেল যাচাইকরণ প্রবাহ শুরু করেন তখন তারা অ্যাপের মধ্যে প্রবাহ সম্পূর্ণ করার আশা করেন; ইউআরএল চালিয়ে যাওয়ার মাধ্যমে স্টেট পাস করার ক্ষমতা এটিকে সম্ভব করে তোলে।

একটি অবিরত URL এর মাধ্যমে রাজ্য পাস করার ক্ষমতা থাকা একটি শক্তিশালী বৈশিষ্ট্য যা Firebase Auth প্রদান করে এবং যা ব্যবহারকারীর অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।

ইমেল অ্যাকশনে স্টেট/কন্টিনিউ ইউআরএল পাস করা

একটি অবিরত ইউআরএল নিরাপদে পাস করার জন্য, ইউআরএলের ডোমেনটিকে Firebase কনসোলে অনুমোদিত তালিকাভুক্ত করতে হবে। সাইন-ইন পদ্ধতি ট্যাবের অধীনে অনুমোদিত ডোমেনের তালিকায় এই ডোমেনটি যোগ করে প্রমাণীকরণ বিভাগে এটি করা হয় যদি এটি ইতিমধ্যে সেখানে না থাকে।

পাসওয়ার্ড রিসেট ইমেল বা যাচাইকরণ ইমেল পাঠানোর সময় একটি ActionCodeSettings উদাহরণ প্রদান করা প্রয়োজন। এই ইন্টারফেস নিম্নলিখিত পরামিতি লাগে:

প্যারামিটার টাইপ বর্ণনা
url স্ট্রিং

লিঙ্ক সেট করে (স্টেট/কন্টিনিউ ইউআরএল) যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ রয়েছে:

  • যখন লিঙ্কটি ওয়েব অ্যাকশন উইজেটগুলিতে পরিচালনা করা হয়, এটি continueUrl ক্যোয়ারী প্যারামিটারের গভীর লিঙ্ক।
  • যখন লিঙ্কটি সরাসরি অ্যাপে পরিচালনা করা হয়, তখন এটি ডায়নামিক লিঙ্কের গভীর লিঙ্কে continueUrl ক্যোয়ারী প্যারামিটার।
iOSBundleId স্ট্রিং বান্ডিল আইডি সেট করে। এটি ইনস্টল করা থাকলে এটি একটি Apple অ্যাপে লিঙ্কটি খোলার চেষ্টা করবে। অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে। যদি কোনো বান্ডেল আইডি দেওয়া না থাকে, তাহলে এই ফিল্ডের মান অ্যাপের প্রধান বান্ডেলের বান্ডেল আইডিতে সেট করা হয়।
androidPackageName স্ট্রিং অ্যান্ড্রয়েড প্যাকেজের নাম সেট করে। এটি ইনস্টল করা থাকলে এটি একটি অ্যান্ড্রয়েড অ্যাপে লিঙ্কটি খুলতে চেষ্টা করবে।
androidInstallApp bool যদি ডিভাইসটি সমর্থন করে এবং অ্যাপটি ইতিমধ্যে ইনস্টল না করা থাকে তবে Android অ্যাপটি ইনস্টল করতে হবে কিনা তা নির্দিষ্ট করে৷ যদি এই ক্ষেত্রটি প্যাকেজনাম ব্যতীত প্রদান করা হয়, তাহলে একটি ত্রুটি নিক্ষেপ করা হয় যা ব্যাখ্যা করে যে প্যাকেজনামটি এই ক্ষেত্রের সাথে একত্রে প্রদান করা আবশ্যক।
androidMinimumVersion স্ট্রিং অ্যাপটির ন্যূনতম সংস্করণ যা এই প্রবাহে সমর্থিত। যদি ন্যূনতম সংস্করণ নির্দিষ্ট করা থাকে, এবং অ্যাপটির একটি পুরানো সংস্করণ ইনস্টল করা থাকে, ব্যবহারকারীকে অ্যাপটি আপগ্রেড করতে প্লে স্টোরে নিয়ে যাওয়া হয়। অ্যান্ড্রয়েড অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে।
handleCodeInApp bool ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে।
dynamicLinkDomain স্ট্রিং যদি Firebase ডায়নামিক লিঙ্ক ব্যবহার করে খোলা হয় তাহলে বর্তমান লিঙ্কের জন্য ব্যবহার করার জন্য ডায়নামিক লিঙ্ক ডোমেন (বা সাবডোমেন) সেট করে। যেহেতু একাধিক গতিশীল লিঙ্ক ডোমেন প্রতি প্রকল্পে কনফিগার করা যেতে পারে, এই ক্ষেত্রটি স্পষ্টভাবে একটি বেছে নেওয়ার ক্ষমতা প্রদান করে। যদি কোনটি প্রদান করা না হয়, প্রথম ডোমেনটি ডিফল্টরূপে ব্যবহৃত হয়।

নিচের উদাহরণে দেখানো হয়েছে কিভাবে একটি ইমেল ভেরিফিকেশন লিঙ্ক পাঠাতে হয় যা প্রথমে ফায়ারবেস ডায়নামিক লিঙ্ক হিসেবে কাস্টম ডায়নামিক লিঙ্ক ডোমেন example.page.link (iOS অ্যাপ com.example.ios বা Android অ্যাপ com.example.android যেখানে ইতিমধ্যে ইনস্টল না থাকলে অ্যাপটি ইনস্টল হবে এবং সর্বনিম্ন সংস্করণ 12 )। ডিপ লিঙ্কটিতে অবিরত URL পেলোড থাকবে https://www.example.com/?email=user@example.com

final user = FirebaseAuth.instance.currentUser;

final actionCodeSettings = ActionCodeSettings(
  url: "http://www.example.com/verify?email=${user?.email}",
  iOSBundleId: "com.example.ios",
  androidPackageName: "com.example.android",
);

await user?.sendEmailVerification(actionCodeSettings);

Firebase Auth ফায়ারবেস ডায়নামিক লিঙ্কগুলি ব্যবহার করে একটি লিঙ্ক পাঠানোর সময় যা একটি মোবাইল অ্যাপ্লিকেশনে খোলার জন্য। এই বৈশিষ্ট্যটি ব্যবহার করার জন্য, ডায়নামিক লিঙ্কগুলিকে Firebase কনসোলে কনফিগার করতে হবে৷

  1. ফায়ারবেস ডায়নামিক লিঙ্কগুলি সক্ষম করুন:

    1. Firebase কনসোলে, ডায়নামিক লিঙ্ক বিভাগ খুলুন।

    2. আপনি যদি এখনও ডায়নামিক লিঙ্কের শর্তাদি গ্রহণ না করে থাকেন এবং একটি ডায়নামিক লিঙ্ক ডোমেন তৈরি না করে থাকেন, তাহলে এখনই করুন৷

    3. আপনি যদি ইতিমধ্যেই একটি ডায়নামিক লিঙ্ক ডোমেন তৈরি করে থাকেন, তবে এটি নোট করুন। একটি ডায়নামিক লিঙ্ক ডোমেন সাধারণত নিম্নলিখিত উদাহরণের মত দেখায়:

      example.page.link

    4. ইনকামিং লিঙ্কটি আটকাতে আপনি যখন আপনার Apple বা Android অ্যাপ কনফিগার করবেন তখন আপনার এই মানটির প্রয়োজন হবে।

  2. অ্যান্ড্রয়েড অ্যাপ্লিকেশন কনফিগার করা:

    1. আপনি যদি আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, তাহলে Firebase কনসোল প্রকল্প সেটিংসে Android প্যাকেজের নাম উল্লেখ করতে হবে। এছাড়াও, আবেদনের শংসাপত্রের SHA-1 এবং SHA-256 প্রদান করতে হবে।
    2. আপনার AndroidManifest.xml ফাইলে ডিপ লিঙ্কের জন্য অভিপ্রায় ফিল্টার কনফিগার করতে হবে।
    3. এই বিষয়ে আরও জানতে, অ্যান্ড্রয়েড ডায়নামিক লিঙ্কগুলি প্রাপ্তির নির্দেশাবলী পড়ুন।
  3. অ্যাপল অ্যাপ্লিকেশন কনফিগার করা:

    1. আপনি যদি আপনার অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, বান্ডেল আইডিটি Firebase কনসোল প্রকল্প সেটিংসে নির্দিষ্ট করতে হবে। এছাড়াও, অ্যাপ স্টোর আইডি এবং অ্যাপল ডেভেলপার টিম আইডিও নির্দিষ্ট করতে হবে।
    2. এছাড়াও আপনাকে আপনার অ্যাপ্লিকেশন ক্ষমতাগুলির মধ্যে একটি অ্যাসোসিয়েটেড ডোমেন হিসাবে FDL ইউনিভার্সাল লিঙ্ক ডোমেন কনফিগার করতে হবে।
    3. আপনি যদি আপনার অ্যাপ্লিকেশনটি iOS সংস্করণ 8 এবং তার নীচে বিতরণ করার পরিকল্পনা করেন, তাহলে আপনাকে আগত URLগুলির জন্য একটি কাস্টম স্কিম হিসাবে আপনার বান্ডেল আইডি সেট করতে হবে৷
    4. এই বিষয়ে আরও জানতে, অ্যাপল প্ল্যাটফর্মের ডায়নামিক লিঙ্ক নির্দেশাবলী প্রাপ্তি পড়ুন।

একটি ওয়েব অ্যাপ্লিকেশনে ইমেল ক্রিয়াকলাপ পরিচালনা করা

আপনি নির্দিষ্ট করতে পারেন যে আপনি প্রথমে একটি ওয়েব অ্যাপ্লিকেশন থেকে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান এবং তারপর সফলভাবে সমাপ্তির পরে অন্য ওয়েব পৃষ্ঠা বা মোবাইল অ্যাপ্লিকেশনে পুনঃনির্দেশ করতে চান, যদি মোবাইল অ্যাপ্লিকেশনটি উপলব্ধ থাকে। ActionCodeSettings অবজেক্টে handleCodeInApp false সেট করে এটি করা হয়। যদিও একটি বান্ডেল আইডি বা অ্যান্ড্রয়েড প্যাকেজের নাম প্রয়োজন হয় না, তবে সেগুলি প্রদান করলে ব্যবহারকারীকে ইমেল অ্যাকশন কোড সমাপ্তিতে নির্দিষ্ট অ্যাপে পুনঃনির্দেশিত করার অনুমতি দেবে।

এখানে ব্যবহৃত ওয়েব ইউআরএলটি ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা হয়েছে। সমস্ত প্রকল্পের জন্য একটি ডিফল্ট একটি ব্যবস্থা করা হয়েছে। ইমেল অ্যাকশন হ্যান্ডলারকে কীভাবে কাস্টমাইজ করতে হয় সে সম্পর্কে আরও জানতে ইমেল হ্যান্ডলার কাস্টমাইজ করা দেখুন।

এই ক্ষেত্রে, continueURL ক্যোয়ারী প্যারামিটারের মধ্যে লিঙ্কটি একটি FDL লিঙ্ক হবে যার পেলোড হল ActionCodeSettings অবজেক্টে নির্দিষ্ট করা URL । আপনি যখন কোনো অতিরিক্ত নির্ভরতা ছাড়াই আপনার অ্যাপ থেকে ইনকামিং লিঙ্কটিকে আটকাতে এবং পরিচালনা করতে পারেন, আমরা আপনার জন্য গভীর লিঙ্কটি পার্স করতে FDL ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিই।

ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, oobCode ক্যোয়ারী প্যারামিটার থেকে অ্যাকশন কোডটি ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর পরিবর্তনটি কার্যকর হওয়ার জন্য applyActionCode মাধ্যমে প্রয়োগ করতে হবে, যেমন ইমেল যাচাই করা হবে।

একটি মোবাইল অ্যাপ্লিকেশনে ইমেল ক্রিয়াকলাপ পরিচালনা করা

আপনি প্রথমে আপনার মোবাইল অ্যাপ্লিকেশনের মধ্যে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান কিনা তা নির্দিষ্ট করতে পারেন, যদি এটি ইনস্টল করা থাকে। অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলির সাথে, আপনার কাছে androidInstallApp মাধ্যমে নির্দিষ্ট করার ক্ষমতাও রয়েছে যে অ্যাপটি ইনস্টল করা হবে যদি ডিভাইসটি এটি সমর্থন করে এবং এটি ইতিমধ্যে ইনস্টল করা না থাকে। যদি লিঙ্কটি এমন একটি ডিভাইস থেকে ক্লিক করা হয় যা মোবাইল অ্যাপ্লিকেশন সমর্থন করে না, তবে এটি পরিবর্তে একটি ওয়েব পৃষ্ঠা থেকে খোলা হয়৷ ActionCodeSettings অবজেক্টে handleCodeInApp true হিসাবে সেট করে এটি করা হয়। মোবাইল অ্যাপ্লিকেশনের অ্যান্ড্রয়েড প্যাকেজ নাম বা বান্ডেল আইডিও নির্দিষ্ট করতে হবে৷ এখানে ব্যবহৃত ফলব্যাক ওয়েব URL, যখন কোনো মোবাইল অ্যাপ উপলব্ধ না থাকে, এটি ইমেল অ্যাকশন টেমপ্লেট বিভাগে কনফিগার করা হয়৷ সমস্ত প্রকল্পের জন্য একটি ডিফল্ট একটি ব্যবস্থা করা হয়েছে। ইমেল অ্যাকশন হ্যান্ডলারকে কীভাবে কাস্টমাইজ করতে হয় সে সম্পর্কে আরও জানতে ইমেল হ্যান্ডলার কাস্টমাইজ করা দেখুন।

এই ক্ষেত্রে, ব্যবহারকারীকে পাঠানো মোবাইল অ্যাপের লিঙ্কটি হবে একটি FDL লিঙ্ক যার পেলোড হল অ্যাকশন কোড URL, কনসোলে কনফিগার করা, ক্যোয়ারী প্যারামিটার oobCode , mode , apiKey এবং continueUrl । পরবর্তীটি ActionCodeSettings অবজেক্টে নির্দিষ্ট করা আসল URL হবে। আপনি যখন কোনো অতিরিক্ত নির্ভরতা ছাড়াই আপনার অ্যাপ থেকে ইনকামিং লিঙ্কটিকে আটকাতে এবং পরিচালনা করতে পারেন, আমরা আপনার জন্য গভীর লিঙ্কটি পার্স করতে FDL ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিই। কাস্টমাইজিং ইমেল হ্যান্ডলার বিভাগে বর্ণিত ওয়েব ফ্লো থেকে কীভাবে এটি পরিচালনা করা হয় তার অনুরূপ একটি মোবাইল অ্যাপ্লিকেশন থেকে অ্যাকশন কোড সরাসরি প্রয়োগ করা যেতে পারে।

ইমেল যাচাইকরণের মতো ইমেল অ্যাকশনগুলি পরিচালনা করার সময়, oobCode ক্যোয়ারী প্যারামিটার থেকে অ্যাকশন কোডটি ডিপ লিঙ্ক থেকে পার্স করতে হবে এবং তারপর পরিবর্তনটি কার্যকর হওয়ার জন্য applyActionCode মাধ্যমে প্রয়োগ করতে হবে, যেমন ইমেল যাচাই করা হবে।