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

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

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

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

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

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

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

ইমেল অ্যাকশনে একটি অবিরত ইউআরএলের পাসিং অবস্থা

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

পাসওয়ার্ড রিসেট ইমেল বা যাচাইকরণ ইমেল পাঠানোর সময় একটি ActionCodeSettings উদাহরণ প্রদান করা প্রয়োজন। এটি সংশ্লিষ্ট ActionCodeSettings.Builder ক্লাসের সাথে তৈরি করা যেতে পারে যাতে নিম্নলিখিত পদ্ধতিগুলি রয়েছে:

পদ্ধতি বর্ণনা
setUrl(String url)

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

  • যখন লিঙ্কটি ওয়েব অ্যাকশন উইজেটগুলিতে পরিচালনা করা হয়, এটি continueUrl ক্যোয়ারী প্যারামিটারের গভীর লিঙ্ক।
  • যখন সরাসরি অ্যাপে লিঙ্কটি পরিচালনা করা হয়, এটি Hosting লিঙ্কের গভীর লিঙ্কে continueUrl কোয়েরি প্যারামিটার।
setIOSBundleId(String iOSBundleId) Firebase Authentication সাহায্য করার জন্য iOS বান্ডেল আইডি সেট করে যে এটি একটি শুধুমাত্র ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে যা একটি Apple ডিভাইসে খোলা হবে।
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) Firebase Authentication সাহায্য করার জন্য Android প্যাকেজের নাম সেট করে যে এটি একটি শুধুমাত্র-ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে যা একটি Android ডিভাইসে খোলা হবে
setHandleCodeInApp(boolean status) ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে।
setLinkDomain(String customDomain) যখন একটি প্রকল্পের জন্য কাস্টম Hosting লিঙ্ক ডোমেনগুলি সংজ্ঞায়িত করা হয়, নির্দিষ্ট মোবাইল অ্যাপ দ্বারা লিঙ্কটি খোলার সময় কোনটি ব্যবহার করতে হবে তা নির্দিষ্ট করুন৷ অন্যথায়, ডিফল্ট ডোমেন স্বয়ংক্রিয়ভাবে নির্বাচিত হয় (উদাহরণস্বরূপ, PROJECT_ID .firebaseapp.com )।
setDynamicLinkDomain(String dynamicLinkDomain) অবচয়। এই প্যারামিটার নির্দিষ্ট করবেন না।

নিম্নলিখিত উদাহরণটি ব্যাখ্যা করে যে কীভাবে একটি ইমেল যাচাইকরণ লিঙ্ক পাঠাতে হয় যা প্রথমে একটি মোবাইল অ্যাপে খুলবে৷ গভীর লিঙ্কটিতে অবিরত URL পেলোড থাকবে 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 কনসোলে কনফিগার করতে হবে।

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

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

    1. আপনি যদি আপনার iOS অ্যাপ্লিকেশান থেকে এই লিঙ্কগুলি পরিচালনা করার পরিকল্পনা করেন, তাহলে আপনাকে Hosting লিঙ্ক ডোমেনটিকে আপনার অ্যাপ্লিকেশন ক্ষমতাগুলির সাথে একটি অ্যাসোসিয়েটেড ডোমেন হিসাবে কনফিগার করতে হবে৷
    2. এই বিষয়ে আরও জানতে, iOS হোস্টিং লিঙ্ক নির্দেশাবলী প্রাপ্তি পড়ুন।

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

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

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

এই ক্ষেত্রে, continueUrl ক্যোয়ারী প্যারামিটারের মধ্যে থাকা লিঙ্কটি হবে একটি Hosting লিঙ্ক যার পেলোড হল ActionCodeSettings অবজেক্টে নির্দিষ্ট করা URL

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

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

আপনি প্রথমে আপনার মোবাইল অ্যাপ্লিকেশনের মধ্যে অ্যাকশন কোড লিঙ্কটি পরিচালনা করতে চান কিনা তা নির্দিষ্ট করতে পারেন, যদি এটি ইনস্টল করা থাকে। যদি লিঙ্কটি এমন একটি ডিভাইস থেকে ক্লিক করা হয় যা মোবাইল অ্যাপ্লিকেশন সমর্থন করে না, তবে এটি পরিবর্তে একটি ওয়েব পৃষ্ঠা থেকে খোলা হয়৷ এটি ActionCodeSettings.Builder অবজেক্টে setHandleCodeInApp(true) কল করে করা হয়। মোবাইল অ্যাপ্লিকেশনের অ্যান্ড্রয়েড প্যাকেজের নাম বা iOS বান্ডেল আইডিও নির্দিষ্ট করতে হবে।

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

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

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