JSON ওয়েব টোকেন

JSON ওয়েব টোকেন (JWT) হল একটি ওপেন ওয়েব স্ট্যান্ডার্ড যা একটি ক্লায়েন্ট এবং সার্ভারের মধ্যে তথ্য আদান-প্রদানের প্রমাণীকরণ এবং অনুমোদনের জন্য ব্যবহৃত হয়। যখন একজন অ্যাপ ব্যবহারকারী উপযুক্ত ভূমিকার শংসাপত্রের সাথে প্রথম সাইন ইন করেন, তখন সার্ভার পরবর্তী অনুরোধের সাথে ব্যবহারের জন্য একটি এনকোডেড, ডিজিটালি-সাইন করা JWT তৈরি করে এবং ফেরত দেয়। এই প্রক্রিয়া উভয়ই ব্যবহারকারীকে প্রমাণীকরণ করে এবং তাদের অ্যাকাউন্টের ভূমিকার উপর ভিত্তি করে রুট, পরিষেবা এবং সংস্থান অ্যাক্সেস করার অনুমতি দেয়।

ফ্লিট ইঞ্জিনের জন্য নিম্ন-বিশ্বাসের পরিবেশ থেকে API পদ্ধতি কলের জন্য একটি উপযুক্ত পরিষেবা অ্যাকাউন্ট দ্বারা স্বাক্ষরিত JSON ওয়েব টোকেন (JWTs) ব্যবহার করা প্রয়োজন। কম-বিশ্বাসের পরিবেশে স্মার্টফোন এবং ব্রাউজার অন্তর্ভুক্ত। একটি JWT আপনার সার্ভারে উদ্ভূত হয়, যা একটি সম্পূর্ণ বিশ্বস্ত পরিবেশ । JWT স্বাক্ষরিত, এনক্রিপ্ট করা হয় এবং পরবর্তী সার্ভার ইন্টারঅ্যাকশনের জন্য ক্লায়েন্টের কাছে পাঠানো হয় যতক্ষণ না এটি মেয়াদ শেষ হয় বা আর বৈধ না হয়।

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

API কীগুলির বিপরীতে, JWT গুলি স্বল্পস্থায়ী এবং শুধুমাত্র সেইগুলির মধ্যেই সীমাবদ্ধ যা ভূমিকা সম্পাদন করার জন্য অনুমোদিত। JWTs সম্পর্কে আরও তথ্যের জন্য, উইকিপিডিয়াতে JSON ওয়েব টোকেন দেখুন। অ্যাক্সেসের ভূমিকা সম্পর্কে বিস্তারিত জানার জন্য, এই নির্দেশিকায় পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।

JWT উপাদান

JWT-এ একটি শিরোনাম এবং একটি দাবি বিভাগ থাকে। হেডার বিভাগে পরিষেবা অ্যাকাউন্ট থেকে প্রাপ্ত ব্যক্তিগত কী এবং এনক্রিপশন অ্যালগরিদমের মতো তথ্য রয়েছে। দাবি বিভাগে তথ্য রয়েছে যেমন JWT-এর তৈরির সময়, বেঁচে থাকার সময়, JWT যে পরিষেবাগুলিতে অ্যাক্সেস দাবি করে এবং সুযোগ অ্যাক্সেসের জন্য অন্যান্য অনুমোদনের তথ্য; উদাহরণস্বরূপ, ডেলিভারি গাড়ির আইডি।

নিম্নলিখিত সারণীটি সাধারণভাবে JWT ক্ষেত্রগুলির সম্পর্কে বর্ণনামূলক বিবরণ প্রদান করে, সেইসাথে আপনার ফ্লিট ইঞ্জিন ক্লাউড প্রকল্পে আপনি এই ক্ষেত্রগুলির মানগুলি কোথায় পাবেন সে সম্পর্কে নির্দিষ্ট তথ্য প্রদান করে৷

JWT হেডার ক্ষেত্র

মাঠ

বর্ণনা

alg

ব্যবহার করার জন্য অ্যালগরিদম। `RS256`।

টাইপ

টোকেনের ধরন। `JWT`।

বাচ্চা

আপনার পরিষেবা অ্যাকাউন্টের ব্যক্তিগত কী আইডি। আপনি আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের private_key_id ক্ষেত্রে এই মানটি খুঁজে পেতে পারেন। সঠিক স্তরের অনুমতি সহ একটি পরিষেবা অ্যাকাউন্ট থেকে একটি কী ব্যবহার করা নিশ্চিত করুন৷

JWT ক্ষেত্র দাবি করে

মাঠ

বর্ণনা

iss

আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা, আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের client_email ক্ষেত্রে পাওয়া যায়৷

উপ

আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা, আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের client_email ক্ষেত্রে পাওয়া যায়৷

aud

আপনার পরিষেবা অ্যাকাউন্টের SERVICE_NAME , এই ক্ষেত্রে https://fleetengine.googleapis.com/

iat

টাইমস্ট্যাম্প যখন JWT তৈরি করা হয়েছিল, 00:00:00 UTC, January 1, 1970 থেকে অতিবাহিত সেকেন্ডে নির্দিষ্ট করা হয়েছে। তির্যক জন্য 10 মিনিট অনুমতি দিন। যদি টাইমস্ট্যাম্প অতীতে বা ভবিষ্যতে অনেক দূরে হয়, সার্ভার একটি ত্রুটি রিপোর্ট করতে পারে।

exp

টাইমস্ট্যাম্প যখন JWT মেয়াদ শেষ হয়, 00:00:00 UTC, January 1, 1970 থেকে অতিবাহিত সেকেন্ডে নির্দিষ্ট করা হয়। টাইমস্ট্যাম্প ভবিষ্যতে এক ঘণ্টার বেশি হলে অনুরোধটি ব্যর্থ হয়।

অনুমোদন

ব্যবহারের ক্ষেত্রে নির্ভর করে, deliveryvehicleid , trackingid , taskid বা taskids থাকতে পারে।

Fleet Engine JWT দাবি করেছে

ফ্লিট ইঞ্জিন ব্যক্তিগত দাবি ব্যবহার করে। ব্যক্তিগত দাবি ব্যবহার করা নিশ্চিত করে যে শুধুমাত্র অনুমোদিত ক্লায়েন্টরা তাদের নিজস্ব ডেটা অ্যাক্সেস করতে পারে।

উদাহরণস্বরূপ, যখন আপনার সার্ভার ড্রাইভারের মোবাইল ডিভাইসের জন্য একটি JSON ওয়েব টোকেন ইস্যু করে, তখন এতে ড্রাইভারের গাড়ির আইডির মান সহ vehicleid দাবি বা deliveryvehicleid দাবি থাকা উচিত। তারপরে, ড্রাইভারের ভূমিকার উপর নির্ভর করে, JWTs শুধুমাত্র নির্দিষ্ট গাড়ির আইডির জন্য অ্যাক্সেস সক্ষম করে এবং অন্য কোনো নির্বিচারে গাড়ির আইডি নয়।

ফ্লিট ইঞ্জিন নিম্নলিখিত ব্যক্তিগত দাবি ব্যবহার করে:

অন-ডিমান্ড ট্রিপ

  • vehicleid
    • ড্রাইভার SDK সর্বদা এই দাবিটি ব্যবহার করে, ভ্রমণে বা যানবাহনে পরিচালনা করা হোক না কেন। ফ্লিট ইঞ্জিন ব্যাকএন্ড নিশ্চিত করে যে পরিবর্তন করার আগে গাড়িটি অনুরোধ করা ট্রিপের সাথে যুক্ত।
    • একটি পরিষেবা প্রদানকারী হিসাবে, আপনি এই দাবিটি "*" সহ সমস্ত যানবাহনের সাথে মেলে। মনে রাখবেন যে JWT যানবাহন এবং ট্রিপ অপারেশন উভয়ই কভার করতে পারে, এমনকি প্রয়োজন না হলেও, যা JWT স্বাক্ষর বাস্তবায়নকে সহজ করতে পারে।
  • tripid :
    • ভোক্তা SDK সর্বদা এই দাবিটি ব্যবহার করে।
    • একজন পরিষেবা প্রদানকারী হিসাবে আপনি এই দাবিটি "*" সহ সমস্ত ট্রিপের সাথে মেলে। মনে রাখবেন যে JWT যানবাহন এবং ট্রিপ অপারেশন উভয়ই কভার করতে পারে, এমনকি প্রয়োজন না হলেও, যা টোকেন স্বাক্ষর বাস্তবায়নকে সহজ করতে পারে।

পরিকল্পনামাফিক কাজ

  • deliveryvehicleid

    প্রতি-ডেলিভারি-গাড়ি API কল করার সময় ব্যবহার করুন।

  • taskid

    প্রতি টাস্ক API কল করার সময় ব্যবহার করুন।

  • taskids

    BatchCreateTasksAPI কল করার সময় ব্যবহার করুন। এই দাবিটি অবশ্যই অ্যারে আকারে হতে হবে এবং অ্যারেতে অনুরোধটি সম্পূর্ণ করার জন্য প্রয়োজনীয় সমস্ত টাস্ক আইডি থাকা উচিত৷ delivervehicleid , trackingid , বা taskid দাবি অন্তর্ভুক্ত করবেন না৷

  • trackingid

    GetTaskTrackingInfoAPI কল করার সময় ব্যবহার করুন। অনুরোধে ট্র্যাকিং আইডির সাথে দাবি অবশ্যই মিলবে। delivervehicleid , taskid , বা taskids দাবি অন্তর্ভুক্ত করবেন না৷

এরপর কি