JSON ওয়েব টোকেন

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

ফ্লিট ইঞ্জিনকে কম-বিশ্বাসী পরিবেশ : স্মার্টফোন এবং ব্রাউজার থেকে API পদ্ধতি কলের জন্য JSON ওয়েব টোকেন (JWTs) ব্যবহার করতে হবে।

একটি JWT আপনার সার্ভারে উৎপন্ন হয়, স্বাক্ষরিত হয়, এনক্রিপ্ট করা হয় এবং পরবর্তী সার্ভার ইন্টারঅ্যাকশনের জন্য ক্লায়েন্টের কাছে প্রেরণ করা হয় যতক্ষণ না এটির মেয়াদ শেষ হয় বা আর বৈধ থাকে না।

মূল বিবরণ

  • ফ্লিট ইঞ্জিনের বিরুদ্ধে প্রমাণীকরণ এবং অনুমোদনের জন্য অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ব্যবহার করুন।
  • JWT স্বাক্ষর করার জন্য একটি উপযুক্ত পরিষেবা অ্যাকাউন্ট ব্যবহার করুন। Fleet Engine Basics-Fleet Engine serviceaccount ভূমিকা দেখুন।

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

JWT উপাদান

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

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

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

মাঠ

বিবরণ

অ্যালগ

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

টাইপ

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

বাচ্চা

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

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

মাঠ

বিবরণ

ইস্যু

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

উপ

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

অডি

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

আইএটি

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

এক্সপ্রেস

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

অনুমোদন

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

যদি টাস্কিড নির্দিষ্ট করা হয়, তাহলে অনুমোদনের সুযোগটি নিম্নলিখিত ফর্মগুলির মধ্যে একটিতে একটি অ্যারে হতে হবে:

"taskids": ["task_id_one","task_id_two"]

অথবা

"taskids": ["*"]

ফ্লিট ইঞ্জিন JWT দাবি করে

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

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

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

চাহিদা অনুযায়ী ভ্রমণ

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

নির্ধারিত কাজ

  • deliveryvehicleid

    per-delivery-vehicle API গুলিতে কল করার সময় ব্যবহার করুন।

  • taskid

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

  • taskids

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

  • trackingid

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

এরপর কি?