OAuth 2.0 প্রোটোকলে Access Token এবং Refresh Token দুইটি গুরুত্বপূর্ণ উপাদান। এগুলি একে অপরের পরিপূরক এবং একে অপরের সাথে কাজ করে ব্যবহারকারীর সুরক্ষিত অ্যাক্সেস এবং দীর্ঘমেয়াদী অথেনটিকেশন সিস্টেম নিশ্চিত করতে। নিচে এই দুইটি টোকেনের ভূমিকা এবং তাদের ব্যবহারের প্রক্রিয়া আলোচনা করা হলো।
1. Access Token এর ভূমিকা
Access Token হলো একটি সুরক্ষিত কোড যা একজন ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে তার রিসোর্স (যেমন: ডেটা, ফাইল, API) অ্যাক্সেস করার অনুমতি দেয়। এটি মূলত একটি স্বীকৃতি পত্র যা একটি নির্দিষ্ট সময় পর্যন্ত বৈধ থাকে এবং ব্যবহারকারী বা অ্যাপ্লিকেশনকে তাদের অনুমোদিত তথ্য অ্যাক্সেস করতে সাহায্য করে।
Access Token এর ভূমিকা:
- রিসোর্স অ্যাক্সেস: Access Token ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে একটি নির্দিষ্ট সার্ভিস বা রিসোর্স সার্ভারে অ্যাক্সেস দেয়। উদাহরণস্বরূপ, ব্যবহারকারীর গুগল প্রোফাইল ডেটা বা ফেসবুক ফিড অ্যাক্সেস করার জন্য Access Token প্রয়োজন।
- সীমিত সময়ের জন্য বৈধতা: Access Token সাধারণত সীমিত সময়ের জন্য বৈধ থাকে (যেমন ১ ঘন্টা বা ২ ঘণ্টা)। এর ফলে, কোনো অ্যাক্সেস টোকেন চুরি হলে, সেটির মেয়াদ শেষ হয়ে গেলে তা আর ব্যবহার করা যাবে না।
- নির্দিষ্ট স্কোপ: Access Token এর মাধ্যমে যে রিসোর্স অ্যাক্সেস করা যায়, সেটি নির্দিষ্ট স্কোপের মধ্যে সীমাবদ্ধ থাকে। উদাহরণস্বরূপ, এটি শুধুমাত্র পঠন (read) অনুমতি দিতে পারে, অথবা পঠন এবং লেখন (write) অনুমতি দিতে পারে।
- HTTPS ব্যবহারের মাধ্যমে সুরক্ষা: Access Token সাধারণত HTTPS প্রোটোকল ব্যবহার করে পাঠানো হয়, যাতে ম্যান ইন দ্য মিডল অ্যাটাক (MITM) থেকে রক্ষা করা যায়।
Access Token উদাহরণ:
একটি API কল করার সময়, Access Token প্রেরণ করা হয় যাতে সার্ভার জানে যে ক্লায়েন্টটি অনুমোদিত।
GET /user/profile HTTP/1.1
Host: api.example.com
Authorization: Bearer <access_token>2. Refresh Token এর ভূমিকা
Refresh Token একটি বিশেষ ধরনের টোকেন যা Access Token এর মেয়াদ শেষ হয়ে যাওয়ার পর নতুন Access Token প্রাপ্তি নিশ্চিত করতে ব্যবহৃত হয়। Refresh Token সাধারণত Access Token এর সাথে প্রদান করা হয় এবং এটি দীর্ঘমেয়াদী নিরাপত্তা নিশ্চিত করে।
Refresh Token এর ভূমিকা:
- Access Token পুনরুদ্ধার: Access Token সাধারণত সীমিত সময়ের জন্য বৈধ থাকে, তবে Refresh Token ব্যবহার করে নতুন Access Token প্রাপ্তি সম্ভব হয়, যাতে ব্যবহারকারীদের আবার লগইন করতে না হয়।
- দীর্ঘমেয়াদী অথেনটিকেশন: Refresh Token-এর মাধ্যমে ব্যবহারকারীকে পুনরায় লগইন করার ঝামেলা ছাড়াই দীর্ঘ সময় ধরে অ্যাপ্লিকেশন অ্যাক্সেস দেওয়া সম্ভব হয়। এটি ব্যবহারকারীর একটি মসৃণ অভিজ্ঞতা নিশ্চিত করে।
- একাধিক Access Token প্রাপ্তি: Refresh Token সাধারণত একাধিক Access Token প্রাপ্তির জন্য ব্যবহৃত হয় এবং এটি সিস্টেমের অভ্যন্তরীণ ব্যবস্থাপনা সহজ করে।
- সুরক্ষা: Refresh Token নিরাপদে সংরক্ষণ করা হয় এবং এটি সাধারণত ক্লায়েন্ট সাইডে সংরক্ষণ করা হয় না (অথবা এটি নিরাপদভাবে সুরক্ষিত থাকে) যাতে এটি চুরি না হয়।
Refresh Token উদাহরণ:
যখন Access Token এর মেয়াদ শেষ হয়, Refresh Token ব্যবহার করে নতুন Access Token পাওয়া যায়।
POST /oauth/token
Host: api.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
refresh_token=<refresh_token>&
client_id=<client_id>&
client_secret=<client_secret>Access Token এবং Refresh Token এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Access Token | Refresh Token |
|---|---|---|
| মেয়াদ | স্বল্প সময়ের জন্য (যেমন ১ ঘণ্টা) | দীর্ঘ সময়ের জন্য (দিন বা মাস) |
| উদ্দেশ্য | রিসোর্স অ্যাক্সেস করার অনুমতি প্রদান | নতুন Access Token তৈরি করার জন্য |
| নিরাপত্তা | সীমিত সময়ের জন্য বৈধ; HTTPS দিয়ে নিরাপদ | নিরাপদে সংরক্ষণ করতে হবে |
| ব্যবহার | API বা সিস্টেমের রিসোর্স অ্যাক্সেস করতে | Access Token পুনরুদ্ধার করতে |
| স্কোপ | নির্দিষ্ট স্কোপের মধ্যে সীমাবদ্ধ | শুধুমাত্র Access Token রিফ্রেশ করতে |
সারাংশ
- Access Token ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে নির্দিষ্ট সময়ের জন্য অনুমোদিত রিসোর্স অ্যাক্সেস করার অনুমতি দেয়।
- Refresh Token ব্যবহারকারীকে একটি দীর্ঘ সময় ধরে অনুমোদিত অ্যাক্সেস প্রদান করে এবং Access Token এর মেয়াদ শেষ হলে নতুন Access Token প্রাপ্তির জন্য ব্যবহৃত হয়।
- Access Token এর মাধ্যমে অ্যাক্সেস সরাসরি প্রদান করা হয়, যখন Refresh Token অ্যাক্সেস টোকেন রিফ্রেশ করতে ব্যবহৃত হয়, এবং এটি সিস্টেমের নিরাপত্তা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।
Read more