কীভাবে WhatsApp ১ বিলিয়ন ব্যবহারকারীর জন্য পাসকী ব্যবহার করে নিরাপদ, নিরবচ্ছিন্ন সাইন-ইন করার সুবিধা আপগ্রেড করেছে
৮ মিনিট লাগবে
WhatsApp হল বিশ্বের সবচেয়ে বড় মেসেজিং প্ল্যাটফর্ম, যা বিশ্বজুড়ে কোটি কোটি ব্যবহারকারীকে পরিষেবা প্রদান করে। এটি বিভিন্ন অঞ্চলের লোকজনের জন্য ডিফল্ট কমিউনিকেশন টুল, যা ব্যক্তিগত, নির্ভরযোগ্য এবং নিরাপদ মেসেজিংয়ের মাধ্যমে ব্যবহারকারীদের কানেক্ট করে।
"WhatsApp-এর প্রভাবের বিশালতা আমাকে সবচেয়ে বেশি উত্তেজিত করে। WhatsApp-এ সামান্য উন্নতিও বিশ্বজুড়ে কোটি কোটি ব্যবহারকারীকে প্রভাবিত করে," বলেছেন মায়াঙ্ক মনুজা, যিনি WhatsApp রেজিস্ট্রেশন ও অ্যাক্সেস টিমের একজন Android ইঞ্জিনিয়ার এবং WhatsApp-এর জন্য পাসকী-ভিত্তিক যাচাইকরণ ডিজাইন ও প্রয়োগ করার ক্ষেত্রে নেতৃত্ব দিয়েছেন।
এই বিশাল সংখ্যক দর্শকের জন্য কিছু তৈরি করতে হলে, নেটওয়ার্কের অবস্থা, ডিভাইসের ক্ষমতা এবং ডিজিটাল বিষয়ে জ্ঞানের বিভিন্ন স্তরের মতো অনেক বিষয় বিবেচনা করতে হয়। সম্ভাবনা আগে থেকেই বুঝতে পেরে, WhatsApp ২০২৩ সালে পাসকী গ্রহণ করার ব্যাপারে প্রতিশ্রুতিবদ্ধ হয় এবং এই প্রযুক্তি ইন্টিগ্রেট করা প্রথম প্রধান কনজিউমার অ্যাপের মধ্যে একটি হয়ে ওঠে। পাসকী প্রয়োগ করে, WhatsApp-এর লক্ষ্য ছিল একটি দ্রুত, ফিশিং-প্রতিরোধী বিকল্প প্রদান করা যা অ্যাকাউন্ট টেকওভার এবং ক্রেডেনশিয়াল চুরির বিরুদ্ধে শক্তিশালী সুরক্ষা প্রদান করার পাশাপাশি ব্যবহারকারীর সমস্যা উল্লেখযোগ্যভাবে কমিয়ে দেয়।
পাসকী গ্রহণ করার সিদ্ধান্ত
WhatsApp-এর ক্ষেত্রে, ব্যবহারকারীদের কানেক্টেড থাকতে এবং প্রয়োজন হলে অ্যাক্সেস ফিরে পেতে সাহায্য করার জন্য একাধিক অ্যাক্সেস পদ্ধতি অফার করা অত্যন্ত গুরুত্বপূর্ণ। পাসকী ব্যবহারকারীদের একটি স্ট্রিমলাইনড, এক-ট্যাপ লগ-ইন অভিজ্ঞতা অফার করে যা ফিশিংয়ের ঝুঁকি দূর করে এবং যেসব অঞ্চলে ওটিপি মেসেজ ডেলিভারি অসামঞ্জস্যপূর্ণ হতে পারে সেখানেও নির্ভরযোগ্যভাবে কাজ করে।
পাসকী, সর্বজনীন-ব্যক্তিগত কী ক্রিপ্টোগ্রাফি ব্যবহার করে ম্যানুয়াল এন্ট্রির পরিবর্তে বায়োমেট্রিক বা স্ক্রিন লক যাচাইকরণ ব্যবহার করে। এই ওয়ার্কফ্লো, সাইন-ইন করার গতিকে উল্লেখযোগ্যভাবে উন্নত করে। এটি একটি ইউনিফায়েড, স্ক্রিনের নিচে অ্যাটাচ করা শিট ইন্টারফেসের মাধ্যমে প্রসেসটিকে একটি মাত্র ট্যাপে কমিয়ে আনে, যা ব্যবহারকারীদের অ্যাপের প্রসঙ্গে এনগেজ রাখে। এর সুবিধা দু'টি: পাসকী ব্যবহারকারীদের একটি স্ট্রিমলাইনড লগ-ইন অভিজ্ঞতা প্রদান করে এবং একই সাথে ফিশিং অ্যাটাকের বিরুদ্ধে শক্তিশালী, নেটিভ সুরক্ষা প্রদান করে। সবচেয়ে গুরুত্বপূর্ণ হল, যেসব অঞ্চলে প্রথাগত SMS ওটিপি ডেলিভারি অনিয়মিত হতে পারে, সেখানেও এগুলি নির্ভরযোগ্যভাবে কাজ করে।
অ্যাকাউন্ট অ্যাক্সেস করার শক্তিশালী ও বিভিন্ন পদ্ধতি থাকলে, ব্যবহারকারীরা তাদের কাছে সবচেয়ে গুরুত্বপূর্ণ জিনিস থেকে কখনও লক-আউট হয়ে যান না।
ক্লায়েন্ট-সাইড ইন্টিগ্রেশন
WhatsApp ডেভেলপারদের দৃষ্টিকোণ থেকে, ক্রেডেনশিয়াল ম্যানেজার API একটি পরিষ্কার, ইউনিফায়েড ইন্টারফেস প্রদান করে যা অন্তর্নিহিত ক্রেডেনশিয়াল প্রদানকারীদের জটিলতাকে দূরে সরিয়ে দেয়। প্রাথমিক ইন্টিগ্রেশন ফ্লো ম্যাপ করা হয়ে গেলে, API সারফেস সহজ হয়ে যায়, যেখানে ক্রেডেনশিয়াল তৈরি ও রিট্রিভ করার জন্য সুনির্দিষ্ট অনুরোধ ও উত্তর প্যাটার্ন অনুসরণ করা হয়। Android ডেভেলপার ডকুমেন্টেশন থেকে প্রয়োগ করার নির্দেশিকা খুঁজে নিন।
হ্যাপি পাথ শুরু থেকেই কাজ করলেও, OEM, একাধিক Android ভার্সন এবং বিভিন্ন ডিভাইস কনফিগারেশন (যেমন, শুধু পিন বনাম বায়োমেট্রিক, বা Android 13 বনাম 14+) জুড়ে বিভিন্ন ব্যবহারকারীর বেস নেভিগেট করার ফলে অভূতপূর্ব এজ কেস সামনে এসেছে। এর মধ্যে স্ক্রিন লক ছাড়া ব্যবহারকারী, অপ্রত্যাশিত ব্যতিক্রমের ধরন, পুরনো Play Services এবং ক্রেডেনশিয়াল প্রদানকারীর অসঙ্গতিপূর্ণ আচরণ অন্তর্ভুক্ত ছিল।
এইসব বাধা অতিক্রম করতে, WhatsApp ও Google টিম নিবিড়ভাবে সহযোগিতা করেছে এবং বেশ কিছু চ্যালেঞ্জের মোকাবিলা করেছে:
- ক্রেডেনশিয়াল লুকআপ ফ্লো অপ্টিমাইজ করা: প্রাথমিক লুকআপ ফ্লোতে লেটেন্সি বেশি ছিল, বিশেষ করে সেইসব ব্যবহারকারীর ক্ষেত্রে যারা এখনও পাসকী তৈরি করেননি। যেহেতু WhatsApp ব্যবহারকারীদের বেশিরভাগই প্রাথমিক পর্যায়ে এই বাকেটের মধ্যে পড়েন, তাই এটি প্রায় প্রতিটি সাইন-ইনে লক্ষণীয় বিলম্ব যোগ করেছে। কল পাথ ইন্সট্রুমেন্ট করে এবং একসাথে বাধাগুলি শনাক্ত করে, WhatsApp উল্লেখযোগ্যভাবে প্রসেসটি দ্রুত করেছে, পারফর্ম্যান্সের উন্নতি অর্জন করেছে যা শেষ পর্যন্ত সমগ্র Android ইকোসিস্টেমকে উপকৃত করেছে।
- ট্রানজিয়েন্ট স্টেট ম্যানেজ করা: পাসওয়ার্ড ম্যানেজার উপলভ্য থাকা, স্ক্রিন লক কনফিগার না করা, মাঝে মাঝে কানেক্টিভিটি সংক্রান্ত সমস্যা, বেমানান হার্ডওয়্যার, পুরনো Play পরিষেবা, ব্যতিক্রমগুলিকে পুনরুদ্ধারযোগ্য এবং টার্মিনাল স্টেটে শ্রেণীবদ্ধ করার মতো ডিভাইস-নির্দিষ্ট বাধাগুলি নেভিগেট করার জন্য WhatsApp একটি ব্যাপক ত্রুটি-হ্যান্ডলিং লেয়ার তৈরি করেছে। এর ফলে, পাসকী ফ্লো সম্পূর্ণ না হলে, সিস্টেম ব্যবহারকারীকে কোনও সমস্যা ছাড়াই নিরাপদে প্রথাগত যাচাইকরণ পদ্ধতিতে ফিরিয়ে নিয়ে যায়।
- OS-নির্দিষ্ট ব্যতিক্রম নেভিগেট করা: টেলিমেট্রি যখন নির্দিষ্ট Android 13 ডিভাইসে GetPublicKeyCredentialDomException (ক্রেডেনশিয়াল ডিক্রিপ্ট করা যায়নি) এবং Android 14-এ পাসকী তৈরি করার সময় CreatePublicKeyCredentialDomException (সিঙ্ক অ্যাকাউন্ট পাওয়া যায়নি) এর মতো ডিভাইস-নির্দিষ্ট বাধা প্রকাশ করে, তখন Google এবং WhatsApp টিম মূল কারণগুলি তদন্ত করে এবং মসৃণ ক্রিয়েশন ফ্লো নিশ্চিত করতে প্ল্যাটফর্ম-লেভেল উন্নতি বাস্তবায়ন করে। আপনি এখানে ক্রেডেনশিয়াল ম্যানেজার সম্পর্কিত সাধারণ ত্রুটি কোড এবং বিবরণ সহ ত্রুটি সংক্রান্ত বিস্তারিত নির্দেশিকা খুঁজে পেতে পারেন এবং তাদের কারণ সম্পর্কে কিছু তথ্য প্রদান করে।
| মনে রাখবেন: আরও নির্দেশনার জন্য, পাসকী সংক্রান্ত পেশাদার পদ্ধতি ব্লগ এক্সপ্লোর করুন যাতে পাসকী গ্রহণ করার সময় ব্যবহারকারীর অভিজ্ঞতা কীভাবে অপ্টিমাইজ করতে হয় তা জানতে পারেন। |
ব্যবহারকারীর অভিজ্ঞতা আরও উন্নত করা
২০২৩ সালের প্রথম দিকে পাসকী সম্পূর্ণ নতুন ধারণা ছিল, তাই এটি তৈরি করার জন্য প্রম্পট দেখানোর কোনও প্রতিষ্ঠিত প্যাটার্ন ছিল না। ব্যাপক A/B টেস্টিংয়ের মাধ্যমে, WhatsApp একটি প্রাসঙ্গিক ফ্রেমওয়ার্ক তৈরি করেছে যা সেইসব ব্যবহারকারীদের টার্গেট করে যারা সবচেয়ে বেশি উপকৃত হবেন। এই স্ট্র্যাটেজি ক্রমাগত উন্নত হয়েছে: Android OS ফ্লো আরও স্ট্রিমলাইনড, সিঙ্গল-স্ক্রিন অভিজ্ঞতায় পরিণত হওয়ার সাথে সাথে, WhatsApp তার নিজস্ব প্রম্পট আরও সহজ করেছে যাতে অপ্রয়োজনীয় বা বিভ্রান্তিকর UI এড়ানো যায়।
সার্ভার-সাইড আর্কিটেকচার এবং ক্রস-প্ল্যাটফর্ম সংক্রান্ত বাধা
ব্যাকএন্ডে, WhatsApp-এর সার্ভার স্ট্যান্ডার্ড WebAuthn/FIDO2 প্রোটোকল প্রয়োগ করে। ব্যাকএন্ড Erlang-এ লেখা এবং নেটিভ ইন্টারফেসের মাধ্যমে Rust webauthn-rs লাইব্রেরি কল করে। এই Rust লাইব্রেরি সিগনেচার যাচাইকরণ ও ক্রেডেনশিয়াল পার্সিং ম্যানেজ করে, যার ফলে ইন্টার্নাল কোড অর্কেস্ট্রেশন, স্টোরেজ ও প্রোডাক্ট সংক্রান্ত নিয়ম যেমন যোগ্যতা, রেট-লিমিটিং ও ক্রেডেনশিয়াল লাইফসাইকেলের উপর ফোকাস করতে পারে।
সার্ভার আর্কিটেকচার চারটি প্রাথমিক এন্ট্রি পয়েন্টের মাধ্যমে এই মূল অনুষ্ঠানগুলি পরিচালনা করে, যা রেজিস্ট্রেশন এবং যাচাইকরণ উভয়ের জন্য শুরু করুন এবং শেষ করুন সিকোয়েন্সে যুক্ত করা হয়েছে:
১. পাসকী রেজিস্ট্রেশন
এই সিকোয়েন্স ক্লায়েন্টকে তৈরির বিকল্প ইস্যু করা, ক্লায়েন্ট সফলভাবে তৈরি করার বিষয়টি স্বীকার করার পরে অ্যাটেস্টেশন যাচাই করা এবং ক্রেডেনশিয়াল নিরাপদে সেভ করার বিষয়টি ম্যানেজ করে।
Erlang: রেজিস্ট্রেশন শুরু করুন
begin_registration(UserId) ->
Existing = list_credentials(UserId),
%% reuse the existing user handle, or mint a new one
{UserHandle, IsNew} = user_handle(Existing),
%% returns the client creation options and the server-side challenge state
#{client_safe := CreationOptions, server_only := ChallengeState} =
webauthn:start_registration(UserId, UserHandle, rp_config()),
%% excludeCredentials: the user's existing credential IDs, so the device won't re-enroll one
Options = with_exclude_credentials(CreationOptions, credential_ids(Existing)),
store_challenge(UserId, ChallengeState), %% short TTL
IsNew andalso reserve_user_handle(UserId, UserHandle),
Options.- ব্যবহারকারীকে শনাক্ত করা: সার্ভার প্রথমে আগে থেকে থাকা কোনও ক্রেডেনশিয়াল চেক করে দেখে যাতে আগে থেকে থাকা কোনও ব্যবহারকারীর হ্যান্ডেল আবার ব্যবহার করা যায় অথবা নতুন একটি তৈরি করা যায়।
- বিকল্প ও চ্যালেঞ্জ তৈরি করা: এটি ক্লায়েন্টের জন্য তৈরি করার বিকল্প এবং সার্ভারের জন্য একটি সুরক্ষিত চ্যালেঞ্জ স্টেট তৈরি করতে WebAuthn লাইব্রেরিকে কল করে।
- ডুপ্লিকেট হওয়া আটকানো: এটি ব্যবহারকারীর আগে থেকে থাকা ক্রেডেনশিয়াল আইডিকে স্পষ্টভাবে বাদ দেয় যাতে ডিভাইসটি ভুলবশত আগে থেকে রেজিস্টার করা পাসকী আবার এনরোল না করে।
- চ্যালেঞ্জ স্টোর করা: সার্ভার সাময়িকভাবে অল্প টাইম-টু-লাইভ (TTL) সহ চ্যালেঞ্জ স্টোর করে এবং ক্লায়েন্ট ডিভাইসে বিকল্পগুলি ফেরত পাঠায়।
Erlang: রেজিস্ট্রেশন সম্পূর্ণ করুন
finish_registration(UserId, Attestation) ->
ChallengeState = get_challenge(UserId), %% must exist and be unexpired
#{credential_id := CredId, public_key := PubKey} =
webauthn:finish_registration(Attestation, ChallengeState, rp_config()),
ok = index_credential(CredId, UserId), %% map credential_id -> account
case multi_passkey_enabled(UserId) of
true -> add_credential(UserId, CredId, PubKey); %% append (oldest evicted past the cap)
false -> replace_credential(UserId, CredId, PubKey) %% single-passkey mode
end,
notify_client(UserId, {passkey_created, CredId}),
ok.- চ্যালেঞ্জ ফিরিয়ে আনা: সার্ভার সেভ করা চ্যালেঞ্জ ফিরিয়ে আনে, এটি এখনও আছে এবং মেয়াদ শেষ হয়ে যায়নি তা নিশ্চিত করে।
- অ্যাটেস্টেশন যাচাই করা: এটি ক্লায়েন্টের উত্তর (অ্যাটেস্টেশন) এবং চ্যালেঞ্জ WebAuthn লাইব্রেরিতে পাস করে যাতে অনুরোধ যাচাই করা যায় এবং নতুন ক্রেডেনশিয়াল আইডি ও পাবলিক কী এক্সট্র্যাক্ট করা যায়।
- ক্রেডেনশিয়াল ইনডেক্স করা: নতুন ক্রেডেনশিয়াল আইডি সরাসরি ব্যবহারকারীর অ্যাকাউন্টে ম্যাপ করা হয় যাতে পরে দ্রুত লুকআপ করা যায়।
- সীমা সেভ ও ম্যানেজ করা: মাল্টি-পাসকী ফিচার চালু আছে কিনা তার উপর নির্ভর করে, সার্ভার হয় ব্যবহারকারীর তালিকায় নতুন ক্রেডেনশিয়াল যোগ করবে (সীমা পেরিয়ে গেলে সবচেয়ে পুরনোটি সরিয়ে দেবে) অথবা সিঙ্গল-পাসকী মোডে আগে থেকে থাকা ক্রেডেনশিয়ালটি পরিবর্তন করবে।
২. ক্রেডেনশিয়াল যাচাইকরণ
তৈরি করার মতোই, অ্যাপ সার্ভার লগ-ইন সিকোয়েন্স অর্কেস্ট্রেট করার মাধ্যমে যাচাইকরণ ফ্লো ম্যানেজ করে। এর মধ্যে রয়েছে, ক্লায়েন্ট যাচাইকরণ সম্পূর্ণ হওয়ার পরে অ্যাসারশন যাচাই করা এবং WebAuthn রিফ্রেশ করার প্রয়োজন আছে বলে সিগন্যাল দিলেই সেভ করা ক্রেডেনশিয়াল ডায়নামিকভাবে আপডেট করা।
Erlang: যাচাইকরণ শুরু করুন
begin_authentication(UserId) ->
Credentials = list_valid_credentials(UserId),
#{client_safe := RequestOptions, server_only := ChallengeState} =
webauthn:start_authentication(Credentials, rp_config()),
store_challenge(UserId, ChallengeState), %% short TTL
RequestOptions.- সঠিক ক্রেডেনশিয়াল নিয়ে আসা: সার্ভার ব্যবহারকারীর সাথে যুক্ত বর্তমানে সঠিক সব ক্রেডেনশিয়াল খুঁজে দেখে।
- চ্যালেঞ্জ তৈরি করা: এটি ক্লায়েন্টের জন্য অনুরোধের বিকল্প তৈরি করতে সেইসব ক্রেডেনশিয়াল ব্যবহার করে এবং নতুন সার্ভার-সাইড চ্যালেঞ্জ তৈরি করে।
- স্টোর ও রিটার্ন: রেজিস্ট্রেশনের মতোই, চ্যালেঞ্জটি সাময়িকভাবে সেভ করা হয় এবং অনুরোধের বিকল্পগুলি ক্লায়েন্ট অ্যাপে পাস করা হয়।
Erlang: যাচাইকরণ সম্পূর্ণ করুন
finish_authentication(UserId, Assertion) ->
ChallengeState = get_challenge(UserId),
Credentials = list_valid_credentials(UserId),
case webauthn:finish_authentication(Credentials, Assertion, ChallengeState) of
#{user_verified := true, credential_id := CredId, needs_update := NeedsUpdate} = Result ->
%% webauthn tells us when the stored credential should be refreshed
NeedsUpdate andalso refresh_credential(UserId, CredId, Result),
mark_credential_used(UserId, CredId),
{ok, CredId};
_ ->
{error, not_allowed}
end.- অ্যাসার্শন যাচাই করা: সার্ভার সেভ করা চ্যালেঞ্জ ও সঠিক ক্রেডেনশিয়াল ফিরিয়ে আনে, তারপর WebAuthn লাইব্রেরিকে ক্লায়েন্টের অ্যাসার্শন যাচাই করতে বলে।
- প্রয়োজন হলে রিফ্রেশ করুন: ব্যবহারকারীকে সফলভাবে যাচাই করা হলে, সার্ভার needs_update ফ্ল্যাগ চেক করে। সার্ভারে সেভ করা ক্রেডেনশিয়ালের স্ট্যাটাস রিফ্রেশ করতে হবে কিনা তা জানাতে WebAuthn লাইব্রেরি এই ফ্ল্যাগ ব্যবহার করে।
- চূড়ান্ত করা: সার্ভার ক্রেডেনশিয়ালকে ব্যবহৃত হিসেবে চিহ্নিত করে এবং লগ-ইন প্রসেস সফলভাবে সম্পূর্ণ করে।
সার্ভার রেজিস্ট্রেশন সম্পর্কে আরও জানতে, এখানে ইন্টিগ্রেশন গাইড দেখুন।
উন্নত আর্কিটেকচারাল বিবেচনা
সার্ভারে পাসকী ব্যাপকভাবে প্রয়োগ করার ক্ষেত্রে অনন্য চ্যালেঞ্জের সম্মুখীন হতে হয়েছে, বিশেষ করে অ্যাকাউন্টের আর্কিটেকচার ও ডিভাইস সিঙ্ক করার ক্ষেত্রে। WhatsApp ব্যাকএন্ড টিমের আশিস চৌধুরী তাদের সম্মুখীন হওয়া প্রাথমিক বাধাগুলি তুলে ধরেছেন:
- অ্যাকাউন্ট প্রতি একাধিক পাসকিতে মাইগ্রেট করা: WhatsApp-এর লিগ্যাসি সার্ভার লজিক ব্যবহারকারী প্রতি একটি ক্রেডেনশিয়ালের ধারণার সাথে গভীরভাবে জড়িত ছিল। আধুনিক মাল্টি-ডিভাইস বাস্তবতাকে সমর্থন করার জন্য, তারা একটি বাউন্ডেড লিস্ট সিস্টেম তৈরি করেছে যা সীমা পৌঁছে গেলে বুদ্ধিমত্তার সাথে সবচেয়ে পুরনো ক্রেডেনশিয়াল সরিয়ে দেয়। সম্পূর্ণ স্থিতিশীলতা নিশ্চিত করতে, এই প্রধান স্ট্রাকচারাল শিফ্টটি কঠোর পরীক্ষা-নিরীক্ষার মাধ্যমে ধীরে ধীরে রোল-আউট করা হয়েছে।
- ক্রেডেনশিয়াল লাইফসাইকেলের ভারসাম্য বজায় রাখা: ক্রেডেনশিয়ালের বৈধতা ম্যানেজ করার জন্য সূক্ষ্ম স্পর্শের প্রয়োজন। ক্রেডেনশিয়াল খুব বেশি আগ্রাসীভাবে বাতিল করলে, অপ্রয়োজনীয়ভাবে আবার এনরোল করতে হয়, অন্যদিকে খুব বেশি শিথিল হলে, পুরনো ক্রেডেনশিয়াল জমা হতে থাকে। WhatsApp ব্যবহারকারীদের বিরক্ত না করে কঠোর নিরাপত্তা বজায় রাখার জন্য ব্যালেন্সড লাইফসাইকেল স্টেট প্রয়োগ করে এই সমস্যার সমাধান করেছে, যা নিষ্ক্রিয় পাসকীগুলির জন্য অটোমেটিক ব্যাকগ্রাউন্ড ক্লিনআপের মাধ্যমে সম্পূর্ণ হয়েছে।
ক্রস-ডিভাইস সিঙ্ক্রোনাইজেশন নিয়ে নতুন করে ভাবা
এই শক্তিশালী মাল্টি-পাসকী আর্কিটেকচার WhatsApp-কে ক্রস-প্ল্যাটফর্ম ব্যবহারযোগ্যতা সম্পর্কে সম্পূর্ণ নতুনভাবে চিন্তা করার সুযোগ দিয়েছে। স্ট্যান্ডার্ড WebAuthn ক্রস-ডিভাইস ফ্লোতে একটি ডিভাইসে QR কোড স্ক্যান করতে এবং অন্য ডিভাইসে ব্লুটুথের মাধ্যমে যাচাই করতে হয়। তবে, WhatsApp দেখেছে যে ব্লুটুথের উপর নির্ভরতা নির্ভরযোগ্য নয় এবং ব্যবহারকারীরা প্রায়শই নতুন QR কোডকে আগে থেকে থাকা WhatsApp Web লিঙ্কিং প্রসেসের সাথে গুলিয়ে ফেলেন।
ক্রস-ডিভাইস ট্রান্সপোর্ট মেকানিজম ব্যবহার করার জন্য জোর না করে, WhatsApp ব্যবহারকারীদের একাধিক ইকোসিস্টেম জুড়ে নেটিভভাবে পাসকী সেভ করার অনুমতি দেয়, যেমন Android-এ Google Password Manager এবং iOS-এ iCloud Keychain। ব্যবহারকারীরা নতুন প্ল্যাটফর্মে মাইগ্রেট করলে, তারা পরবর্তী সাইন-ইনের সময় একটি নতুন পাসকী তৈরি করেন। এই পদ্ধতি ব্যবহারকারীর জন্য সম্পূর্ণ বাধাহীন এবং নতুন মাল্টি-পাসকী সার্ভার ইনফ্রাস্ট্রাকচারের উপরে নির্বিঘ্নে কাজ করে।
ভবিষ্যতের দিকে তাকানো
পাসকী লঞ্চ করার পর থেকে, WhatsApp তার বিশাল ব্যবহারকারী বেস জুড়ে শক্তিশালী অর্গানিক অ্যাডপশন প্রত্যক্ষ করেছে। প্রথাগত একাধিক ধাপের সাইন-ইন প্রসেসকে একটিমাত্র, বাধাহীন বায়োমেট্রিক জেসচারে রূপান্তরিত করার মাধ্যমে, অ্যাপটি ব্যবহারকারীর অভিজ্ঞতাকে নাটকীয়ভাবে উন্নত করেছে। এই গতিকে আরও এগিয়ে নিয়ে যেতে, WhatsApp এখন প্রাথমিক সাইন-ইনের বাইরে পাসকী ইউটিলিটি প্রসারিত করছে, পাসকী-এনক্রিপ্ট করা ব্যাকআপের মতো সংবেদনশীল অ্যাকাউন্ট অ্যাকশনের জন্য নির্বিঘ্ন ইন-অ্যাপ রি-অথেন্টিকেশন এক্সপ্লোর করছে।
ভবিষ্যতের কথা মাথায় রেখে, WhatsApp প্ল্যাটফর্ম পার্টনারদের সাথে সক্রিয়ভাবে সহযোগিতা করছে যাতে আরও সহজে ক্রেডেনশিয়াল তৈরি করা যায়। আশা করা হচ্ছে যে ডিভাইসের বায়োমেট্রিক ক্ষমতা বাড়ার সাথে সাথে প্রবেশের বাধা স্বাভাবিকভাবেই কমে যাবে।
স্কেলে বিল্ডিং ডেভেলপারদের জন্য সাজেশন
যেসব ডেভেলপার বড় স্কেলে পাসকী ইন্টিগ্রেট করার প্রস্তুতি নিচ্ছেন, তাদের জন্য WhatsApp টিম এই গুরুত্বপূর্ণ সাজেশন শেয়ার করেছে:
- প্রথম থেকেই সমস্যার ট্যাক্সোনমি নিয়ে কাজ করুন: ক্রেডেনশিয়াল ম্যানেজারের বিভিন্ন ধরনের ব্যতিক্রমকে রিকভার করা যায় এমন বনাম টার্মিনাল স্টেটে ভাগ করুন এবং প্রতিটি পরিস্থিতির জন্য স্পষ্ট, সুন্দর ফলব্যাক পাথ নির্ধারণ করুন।
- আপনার উপযুক্ততার ফানেল বুঝুন: স্ক্রিন লক আছে কিনা, বায়োমেট্রিক হার্ডওয়্যার এবং Play পরিষেবার ভার্সন ও ডিজাইন ফ্লোর মতো ইন্সট্রুমেন্ট ডিভাইসের ক্ষমতা চেক করুন যাতে ফ্লোর মাঝখানে ব্যর্থ হওয়ার পরিবর্তে অনুপযুক্ত ব্যবহারকারীদের প্রোঅ্যাক্টিভভাবে বাদ দেওয়া যায়।
- ফলব্যাকের জন্য আপনার অ্যাপ প্রস্তুত করুন: উপযুক্ত ডিভাইসের জন্য একটি সর্বোত্তম প্রাথমিক যাচাইকরণ পদ্ধতি হিসেবে পাসকী ব্যবহার করুন, তবে নির্ভরযোগ্য, সর্বজনীন ফলব্যাক হিসেবে সবসময় ঐতিহ্যগত পদ্ধতিগুলি বজায় রাখুন।
- OS ভার্সন ফ্র্যাগমেন্টেশনের জন্য প্ল্যান: বিভিন্ন অপারেটিং সিস্টেম জুড়ে পাসকী আলাদাভাবে কাজ করতে পারে। Android 13, 14 ও 15+ ভার্সনে ভালভাবে পরীক্ষা করুন এবং ক্রেডেনশিয়াল বেছে নেওয়ার UI-তে OEM-নির্দিষ্ট ভেরিয়েশন বিবেচনা করুন।
- প্রাসঙ্গিক আপসেল ও শিক্ষা: নিরাপত্তা-প্রাসঙ্গিক অ্যাকশনের সময় স্বাভাবিকভাবে পাসকী তৈরির সুবিধা প্রদান করুন। ব্যবহারকারীদের গ্রহণ করার জন্য অ্যাক্সেসযোগ্য ভাষা ব্যবহার করে সাশ্রয়ী মূল্যে সেরা প্রস্তাবনা (গতি এবং নিরাপত্তা) স্পষ্টভাবে জোর দিন।
- প্রোঅ্যাক্টিভভাবে মনিটর করা: প্রতিটি OS আপডেটের সাথে ইকোসিস্টেম উন্নত হয়। ডিভাইসের ল্যান্ডস্কেপ পরিবর্তন করার আগে লেটেন্সি ও সমস্যার প্যাটার্ন ক্রমাগত ট্র্যাক করুন।
পাসকী ও ক্রেডেনশিয়াল ম্যানেজার ব্যবহার শুরু করা
আমাদের ইন্টিগ্রেশন গাইড এবং পাবলিক স্যাম্পেল কোড ব্যবহার করে Android-এ পাসকী ও ক্রেডেনশিয়াল ম্যানেজার ব্যবহার করে দেখুন।
আপনার কোনও প্রশ্ন বা সমস্যা থাকলে, আপনি Android ক্রেডেনশিয়াল সংক্রান্ত সমস্যা ট্র্যাকার-এর মাধ্যমে আমাদের সাথে শেয়ার করতে পারেন।
-
কেস স্টাডিUber, নতুন ডিভাইসে সাইন-ইন করার প্রসেস আরও সহজ করতে Android Restore Credentials API ব্যবহার করেছে, যার ফলে প্রতি বছর ম্যানুয়াল লগ-ইন ৪ মিলিয়ন কমেছে এবং ব্যবহারকারীর রিটেনশন বেড়েছে।
Niharika Arora, Tracy Agyemang • পড়তে ৫ মিনিট লাগবে -
কেস স্টাডিব্রেকিং নিউজ ও বিনোদন থেকে শুরু করে খেলাধূলা ও রাজনীতি, X হল এমন একটি সোশ্যাল মিডিয়া অ্যাপ যা সারা বিশ্ব জুড়ে প্রায় ৫০০ মিলিয়ন ব্যবহারকারীকে লাইভ কমেন্ট্রি সহ সম্পূর্ণ খবর পেতে সাহায্য করে।
Niharika Arora, Tracy Agyemang • ৩ মিনিট রিডিং -
কেস স্টাডিGrab হল দক্ষিণ-পূর্ব এশিয়ার শীর্ষস্থানীয় সুপারঅ্যাপ, যা একটি অ্যাপের মাধ্যমে আটটি দেশ জুড়ে লক্ষ লক্ষ ব্যবহারকারীকে ডেলিভারি, মোবিলিটি এবং আর্থিক পরিষেবা প্রদান করে।
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • পড়তে ৫ মিনিট লাগবে
আপনার ইনবক্সে প্রতি সপ্তাহে Android ডেভেলপমেন্ট সংক্রান্ত লেটেস্ট ইনসাইট পান।