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

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

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

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

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

  • অন্যান্য ক্ষেত্রে, ব্যবহারকারী তাদের মোবাইল ডিভাইস থেকে প্রবাহ শুরু করতে পারে এবং যাচাই করার পরে ব্রাউজারের পরিবর্তে তাদের মোবাইল অ্যাপে ফিরে আসার আশা করতে পারে।

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

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

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

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

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

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

  • যখন লিঙ্কটি ওয়েব অ্যাকশন উইজেটগুলিতে পরিচালনা করা হয়, এটি continueUrl ক্যোয়ারী প্যারামিটারের গভীর লিঙ্ক।
  • যখন লিঙ্কটি সরাসরি অ্যাপে পরিচালনা করা হয়, তখন এটি ডায়নামিক লিঙ্কের গভীর লিঙ্কে continueUrl ক্যোয়ারী প্যারামিটার।
iOS ({bundleId: string}|অনির্ধারিত) iOS বান্ডেল আইডি সেট করে। এটি ইনস্টল করা থাকলে এটি একটি iOS অ্যাপে লিঙ্কটি খোলার চেষ্টা করবে। iOS অ্যাপটিকে কনসোলে নিবন্ধিত করতে হবে।
android ({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) অ্যান্ড্রয়েড প্যাকেজের নাম সেট করে। এটি ইনস্টল করা থাকলে এটি একটি অ্যান্ড্রয়েড অ্যাপে লিঙ্কটি খুলতে চেষ্টা করবে। installApp পাস করা হলে, ডিভাইসটি সমর্থন করে এবং অ্যাপটি ইতিমধ্যে ইনস্টল না থাকলে Android অ্যাপটি ইনস্টল করা হবে কিনা তা নির্দিষ্ট করে। যদি এই ক্ষেত্রটি packageName ব্যতীত প্রদান করা হয়, তাহলে এই ক্ষেত্রের সাথে packageName অবশ্যই প্রদান করতে হবে তা ব্যাখ্যা করে একটি ত্রুটি নিক্ষেপ করা হয়। যদি minimumVersion নির্দিষ্ট করা থাকে, এবং অ্যাপটির একটি পুরানো সংস্করণ ইনস্টল করা থাকে, ব্যবহারকারীকে অ্যাপটি আপগ্রেড করতে প্লে স্টোরে নিয়ে যাওয়া হয়। অ্যান্ড্রয়েড অ্যাপটিকে কনসোলে নিবন্ধন করতে হবে।
handleCodeInApp (বুলিয়ান|অনির্ধারিত) ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে।
dynamicLinkDomain (স্ট্রিং|অনির্ধারিত) যদি Firebase ডায়নামিক লিঙ্ক ব্যবহার করে খোলা হয় তাহলে বর্তমান লিঙ্কের জন্য ব্যবহার করার জন্য ডায়নামিক লিঙ্ক ডোমেন (বা সাবডোমেন) সেট করে। যেহেতু একাধিক গতিশীল লিঙ্ক ডোমেন প্রতি প্রকল্পে কনফিগার করা যেতে পারে, এই ক্ষেত্রটি স্পষ্টভাবে একটি বেছে নেওয়ার ক্ষমতা প্রদান করে। যদি কোনটি প্রদান করা না হয়, প্রথম ডোমেনটি ডিফল্টরূপে ব্যবহৃত হয়।

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

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

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

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

    1. Firebase কনসোলে , Dynamic Links বিভাগ খুলুন।
    2. আপনি যদি এখনও Dynamic Links শর্তাদি গ্রহণ না করে থাকেন এবং একটি Dynamic Links ডোমেন তৈরি না করে থাকেন, তাহলে এখনই করুন৷

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

      example.page.link

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

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

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

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

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

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

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

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

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

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

আপনি প্রথমে আপনার মোবাইল অ্যাপ্লিকেশনের মধ্যে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান কিনা তা নির্দিষ্ট করতে পারেন, যদি এটি ইনস্টল করা থাকে। অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলির সাথে, আপনি android.installApp এর মাধ্যমে নির্দিষ্ট করার ক্ষমতাও রাখেন যে অ্যাপটি ইনস্টল করা হবে যদি ডিভাইসটি এটি সমর্থন করে এবং এটি ইতিমধ্যে ইনস্টল করা না থাকে। যদি লিঙ্কটি এমন একটি ডিভাইস থেকে ক্লিক করা হয় যা মোবাইল অ্যাপ্লিকেশন সমর্থন করে না, তবে এটি পরিবর্তে একটি ওয়েব পৃষ্ঠা থেকে খোলা হয়৷ firebase.auth.ActionCodeSettings অবজেক্টে handleCodeInApp true সেট করে এটি করা হয়। মোবাইল অ্যাপ্লিকেশনের অ্যান্ড্রয়েড প্যাকেজের নাম বা iOS বান্ডেল আইডিও নির্দিষ্ট করতে হবে।

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

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

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