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

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

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

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

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

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

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

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

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

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

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

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

  • যখন লিঙ্কটি ওয়েব অ্যাকশন উইজেটগুলিতে পরিচালনা করা হয়, এটি continueUrl ক্যোয়ারী প্যারামিটারের গভীর লিঙ্ক।
  • যখন সরাসরি অ্যাপে লিঙ্কটি পরিচালনা করা হয়, এটি Hosting লিঙ্কের গভীর লিঙ্কে continueUrl কোয়েরি প্যারামিটার।
iOSBundleID স্ট্রিং Firebase Authentication সাহায্য করার জন্য iOS বান্ডেল আইডি সেট করে যে এটি একটি শুধুমাত্র ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে যা একটি Apple ডিভাইসে খোলা হবে।
androidPackageName স্ট্রিং Firebase Authentication সাহায্য করার জন্য Android প্যাকেজের নাম সেট করে যে এটি একটি শুধুমাত্র-ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে যা একটি Android ডিভাইসে খোলা হবে
handleCodeInApp বুল ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে।
linkDomain স্ট্রিং যখন একটি প্রকল্পের জন্য কাস্টম হোস্টিং লিঙ্ক ডোমেনগুলি সংজ্ঞায়িত করা হয়, নির্দিষ্ট মোবাইল অ্যাপ দ্বারা লিঙ্কটি খোলার সময় কোনটি ব্যবহার করতে হবে তা নির্দিষ্ট করুন৷ অন্যথায়, ডিফল্ট ডোমেন স্বয়ংক্রিয়ভাবে নির্বাচিত হয় (উদাহরণস্বরূপ, PROJECT_ID .firebaseapp.com )।
dynamicLinkDomain স্ট্রিং অবচয়। এই প্যারামিটার নির্দিষ্ট করবেন না।
প্যারামিটার টাইপ বর্ণনা
URL NSString

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

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

নিম্নলিখিত উদাহরণটি ব্যাখ্যা করে যে কীভাবে একটি ইমেল যাচাইকরণ লিঙ্ক পাঠাতে হয় যা প্রথমে কাস্টম Hosting লিঙ্ক ডোমেন custom-domain.com ব্যবহার করে একটি মোবাইল অ্যাপে খুলবে। ডিপ লিঙ্কটিতে অবিরত 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")
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
actionCodeSettings.linkDomain = "custom-domain.com"
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;
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
 actionCodeSettings.linkDomain = @"custom-domain.com";
 [actionCodeSettings setAndroidPackageName:@"com.example.android"];
 [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings
                                        completion:^(NSError *_Nullable error) {
   if (error) {
     // Error occurred. Inspect error.code and handle error.
     return;
   }
   // Email verification sent.
 }];

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

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

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

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

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

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

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

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

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

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

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

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

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