একটি সার্ভারে এসএমএস যাচাইকরণ করুন

স্বয়ংক্রিয়ভাবে ফোন নম্বর যাচাই করতে, আপনাকে যাচাইকরণ প্রবাহের ক্লায়েন্ট এবং সার্ভার উভয় অংশই প্রয়োগ করতে হবে। এই নথিটি সার্ভারের অংশটি কীভাবে বাস্তবায়ন করতে হয় তা বর্ণনা করে।

ফোন যাচাইকরণ সার্ভার তিনটি কাজের জন্য দায়ী:

  1. একটি যাচাইকরণ বার্তা তৈরি করা যাতে একটি ওয়ান-টাইম কোড থাকে এবং ক্লায়েন্ট-সাইড এসএমএস রিট্রিভার API আশা করে এমন ফর্ম্যাট রয়েছে
  2. ব্যবহারকারীর ডিভাইসে যাচাইকরণ বার্তা পাঠানো হচ্ছে
  3. সার্ভারে ফেরত পাঠানোর সময় এক-কালীন কোড যাচাই করা এবং আপনার ব্যাকএন্ডের জন্য প্রয়োজনীয় যেকোন পোস্ট-ভেরিফিকেশন কাজগুলি সম্পূর্ণ করা

আপনার অ্যাপ সার্ভারের সাথে কীভাবে ইন্টারঅ্যাক্ট করে তার সুনির্দিষ্ট বিষয়গুলি আপনার উপর নির্ভর করে। একটি সাধারণ পদ্ধতি হল দুটি এন্ডপয়েন্ট সহ একটি REST API প্রকাশ করা: একটি যেটি একটি প্রদত্ত ফোন নম্বর যাচাই করার অনুরোধ গ্রহণ করে এবং SMS যাচাইকরণ বার্তা পাঠায়, এবং একটি দ্বিতীয় এন্ডপয়েন্ট যা আপনার অ্যাপ থেকে এককালীন কোড গ্রহণ করে৷

1. একটি যাচাইকরণ বার্তা তৈরি করুন৷

যখন আপনার সার্ভার একটি ফোন নম্বর যাচাই করার জন্য একটি অনুরোধ পায়, প্রথমে যাচাইকরণ বার্তাটি তৈরি করুন যা আপনি ব্যবহারকারীর ডিভাইসে পাঠাবেন৷ এই বার্তাটি অবশ্যই:

অন্যথায়, যাচাইকরণ বার্তার বিষয়বস্তু আপনি যা বেছে নিন তা হতে পারে। এটি একটি বার্তা তৈরি করা সহায়ক যেখান থেকে আপনি পরবর্তীতে এককালীন কোডটি সহজেই বের করতে পারবেন। উদাহরণ স্বরূপ, একটি বৈধ যাচাইকরণ বার্তা নিম্নলিখিতটির মতো দেখতে হতে পারে:

Your ExampleApp code is: 123ABC78

FA+9qCX9VSu

একটি এককালীন কোড তৈরি করা হচ্ছে

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

ওয়ান-টাইম কোডগুলি বাস্তবায়নের একটি উপায় হল র্যান্ডম সংখ্যা তৈরি করা, যা আপনি একটি ডাটাবেস টেবিলে কী হিসাবে ব্যবহার করেন। উদাহরণস্বরূপ, আপনার কাছে নিম্নলিখিতগুলির মতো একটি মুলতুবি যাচাইকরণ টেবিল থাকতে পারে:

আইডি ব্যবহারকারী মেয়াদ শেষ
123456789... 1234 2017-3-14 1:59

আপনি একটি এককালীন কোড হিসাবে base32-এনকোডেড ID ব্যবহার করতে পারেন।

আপনার অ্যাপের হ্যাশ স্ট্রিং গণনা করা হচ্ছে

আপনার অ্যাপে কোন যাচাইকরণ বার্তা পাঠাতে হবে তা নির্ধারণ করতে Google Play পরিষেবাগুলি হ্যাশ স্ট্রিং ব্যবহার করে। হ্যাশ স্ট্রিংটি আপনার অ্যাপের প্যাকেজের নাম এবং আপনার অ্যাপের সর্বজনীন কী শংসাপত্র দিয়ে তৈরি। হ্যাশ স্ট্রিং তৈরি করতে:

  1. আপনি যদি Google Play দ্বারা অ্যাপ সাইনিং ব্যবহার করেন, তাহলে Google Play কনসোলের অ্যাপ সাইনিং বিভাগ থেকে আপনার অ্যাপ সাইনিং সার্টিফিকেট ( deployment_cert.der ) ডাউনলোড করুন।

    তারপরে, একটি অস্থায়ী কী স্টোরে অ্যাপ সাইনিং শংসাপত্রটি আমদানি করুন:

    keytool -importcert -file deployment_cert.der -keystore temporary.keystore -alias PlayDeploymentCert
    

    আপনি যদি আপনার APKগুলিতে সরাসরি স্বাক্ষর করেন, তাহলে এই ধাপটি এড়িয়ে যান।

  2. আপনার অ্যাপ সাইনিং সার্টিফিকেট পান—হয় আপনি উপরে আমদানি করেছেন অথবা আপনি সরাসরি আপনার APK সাইন করতে ব্যবহার করেন—একটি ছোট হাতের হেক্স স্ট্রিং হিসেবে।

    উদাহরণস্বরূপ, উপরে তৈরি অস্থায়ী কীস্টোর থেকে হেক্স স্ট্রিং পেতে, নিম্নলিখিত কমান্ডটি টাইপ করুন:

    keytool -exportcert -keystore temporary.keystore -alias PlayDeploymentCert | xxd -p | tr -d "[:space:]"
    

    আপনি যদি সরাসরি আপনার APKগুলিতে স্বাক্ষর করেন, তাহলে আপনার প্রোডাকশন কীস্টোর এবং শংসাপত্রের উপনাম নির্দিষ্ট করুন৷

  3. আপনি যদি একটি অস্থায়ী কীস্টোর তৈরি করেন তবে এটি মুছুন।

  4. আপনার অ্যাপের প্যাকেজ নামের সাথে হেক্স স্ট্রিং যুক্ত করুন, একটি একক স্থান দ্বারা পৃথক করুন৷

  5. সম্মিলিত স্ট্রিংয়ের SHA-256 যোগফল গণনা করুন। SHA-256 যোগফল গণনা করার আগে স্ট্রিং থেকে যেকোন অগ্রণী বা পিছনের হোয়াইটস্পেস অপসারণ করতে ভুলবেন না।

  6. SHA-256 যোগফলের বাইনারি মান বেস64-এনকোড করুন। আপনাকে প্রথমে এর আউটপুট বিন্যাস থেকে SHA-256 যোগফল ডিকোড করতে হতে পারে।

  7. আপনার অ্যাপের হ্যাশ স্ট্রিং হল base64-এনকোডেড হ্যাশের প্রথম 11টি অক্ষর।

নিম্নলিখিত কমান্ডটি আপনার অ্যাপের উত্পাদন কীস্টোর থেকে হ্যাশ স্ট্রিং গণনা করে:

keytool -exportcert -alias PlayDeploymentCert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

বিকল্পভাবে, আপনি SMS পুনরুদ্ধারের নমুনা অ্যাপ থেকে AppSignatureHelper ক্লাসের সাথে আপনার অ্যাপের হ্যাশ স্ট্রিং পেতে পারেন। যাইহোক, আপনি যদি হেল্পার ক্লাস ব্যবহার করেন তবে হ্যাশ স্ট্রিং পাওয়ার পরে আপনার অ্যাপ থেকে এটি সরিয়ে ফেলতে ভুলবেন না। আপনার যাচাইকরণ বার্তাগুলিতে ক্লায়েন্টে গতিশীলভাবে গণনা করা হ্যাশ স্ট্রিংগুলি ব্যবহার করবেন না।

2. এসএমএসের মাধ্যমে যাচাইকরণ বার্তা পাঠান

আপনি যাচাইকরণ বার্তাটি তৈরি করার পরে, যেকোনো SMS সিস্টেম ব্যবহার করে ব্যবহারকারীর ফোন নম্বরে বার্তাটি পাঠান৷

উদাহরণস্বরূপ, Twilio এর বিকাশকারী সাইটে Twilio SMS ব্যবহার করে অ্যাপ যাচাইকরণ দেখুন।

যখন ব্যবহারকারীর ডিভাইস এই বার্তাটি পায়, তখন বার্তাটি আপনার অ্যাপে পাঠানো হয়৷ আপনার অ্যাপটি একবারের কোডটি বের করে এবং যাচাইকরণ প্রক্রিয়াটি সম্পূর্ণ করতে আপনার সার্ভারে ফেরত পাঠায়।

3. একবারের কোডটি ফেরত দিলে তা যাচাই করুন

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

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

আপনি যখন ব্যবহারকারীর যাচাইকরণ স্থিতি রেকর্ড করেন এবং আপনার ডাটাবেস থেকে এক-কালীন কোড মুছে ফেলেন, যাচাইকরণ সম্পূর্ণ হয়৷