OAuth 2.0-এ Access Token সাধারণত একটি সীমিত সময়ের জন্য বৈধ থাকে, এবং যখন এটি মেয়াদ উত্তীর্ণ হয়, তখন অ্যাক্সেস করতে আর সক্ষম হয় না। তবে, Refresh Token ব্যবহারের মাধ্যমে, আপনি নতুন একটি Access Token পেতে পারেন, যা ব্যবহারকারীকে পুনরায় লগ ইন না করেই অ্যাক্সেস প্রদান করে। এটি বিশেষত দীর্ঘমেয়াদী অ্যাক্সেসের জন্য ব্যবহৃত হয়, যেমন অ্যাপ্লিকেশনগুলির মধ্যে একটানা কাজ করার জন্য।
Refresh Token ব্যবহারের ধারণা
Refresh Token একটি দীর্ঘমেয়াদী টোকেন, যা Authorization Server থেকে প্রাপ্ত হয় যখন প্রথমবার Access Token জেনারেট হয়। Refresh Tokenটি ব্যবহার করে, আপনি নতুন একটি Access Token পেতে পারেন যখন পুরানো টোকেনটি মেয়াদ শেষ হয়ে যায়।
Access Token রিফ্রেশ করার পদ্ধতি
Access Token রিফ্রেশ করার জন্য আপনাকে Refresh Token ব্যবহার করে একটি রিকোয়েস্ট পাঠাতে হয়, যা Authorization Server যাচাই করবে এবং একটি নতুন Access Token প্রদান করবে। নিচে এই প্রক্রিয়ার ধাপগুলো দেওয়া হলো:
1. Refresh Token Request পাঠানো
Access Token রিফ্রেশ করার জন্য আপনাকে একটি HTTP POST রিকোয়েস্ট পাঠাতে হবে Authorization Server-এর নির্দিষ্ট URL-এ। এই রিকোয়েস্টে কিছু প্যারামিটার অন্তর্ভুক্ত থাকতে হবে:
- grant_type: এটি
refresh_tokenহতে হবে, কারণ আপনি Access Token রিফ্রেশ করছেন। - refresh_token: এই প্যারামিটারটি আপনার আগের Refresh Token ধারণ করবে, যা Authorization Server থেকে পেয়েছেন।
- client_id: আপনার অ্যাপ্লিকেশনের ক্লায়েন্ট আইডি।
- client_secret: আপনার অ্যাপ্লিকেশনের ক্লায়েন্ট সিক্রেট (যদি প্রয়োজন হয়)।
2. HTTP Request উদাহরণ:
POST /oauth/token HTTP/1.1
Host: authorization-server.com
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
refresh_token=your_refresh_token&
client_id=your_client_id&
client_secret=your_client_secretএখানে:
your_refresh_token: আপনার আগের Refresh Token।your_client_id: আপনার অ্যাপ্লিকেশনের ক্লায়েন্ট আইডি।your_client_secret: আপনার অ্যাপ্লিকেশনের ক্লায়েন্ট সিক্রেট (যদি প্রয়োজন হয়)।
3. Response (পুনরায় Access Token প্রাপ্তি)
যদি সব কিছু ঠিকঠাক থাকে এবং Refresh Token বৈধ হয়, তাহলে Authorization Server একটি নতুন Access Token প্রদান করবে। কখনও কখনও নতুন Refresh Tokenও প্রদান করা হতে পারে।
{
"access_token": "new_access_token",
"token_type": "bearer",
"expires_in": 3600,
"refresh_token": "new_refresh_token" // Optional
}- access_token: নতুন অ্যাক্সেস টোকেন।
- token_type: সাধারণত "bearer"।
- expires_in: অ্যাক্সেস টোকেনের মেয়াদ (সেকেন্ডে)।
- refresh_token: (যদি নতুন প্রদান করা হয়) একটি নতুন Refresh Token।
4. Access Token ব্যবহার করা
নতুন Access Token ব্যবহার করে আপনি API রিকোয়েস্ট পাঠাতে পারেন এবং অ্যাপ্লিকেশন বা সার্ভারের রিসোর্স অ্যাক্সেস করতে পারেন।
Refresh Token এর সীমাবদ্ধতা
- Refresh Token-এর মেয়াদ: কিছু সিস্টেমে Refresh Token-এরও মেয়াদ থাকতে পারে। কখনও কখনও, Refresh Token চিরকাল ব্যবহার করা যাবে না, এবং একটি নির্দিষ্ট সময় পর এটি মেয়াদ উত্তীর্ণ হয়ে যায়।
- Revocation: যদি ব্যবহারকারী তাদের অনুমতি বাতিল করেন, অথবা Refresh Tokenটি বিপদে পড়ে (যেমন, টোকেন চুরি হয়ে গেলে), তবে এটি বাতিল করা যেতে পারে।
Access Token রিফ্রেশ করার নিরাপত্তা
- HTTPS ব্যবহার: সমস্ত রিকোয়েস্ট HTTPS-এর মাধ্যমে পাঠাতে হবে, যাতে টোকেনটি সুরক্ষিতভাবে ট্রান্সমিট হয় এবং ম্যান ইন দ্য মিডল (MITM) অ্যাটাক প্রতিরোধ করা যায়।
- Secure Storage: Refresh Token এবং Access Token উভয়ই নিরাপদ স্থানে সংরক্ষণ করা উচিত। ক্লায়েন্ট সাইড অ্যাপ্লিকেশনে, যেমন ব্রাউজারে, এগুলো স্থানীয় স্টোরেজ বা কুকি ব্যবহারের পরিবর্তে সুরক্ষিত ভেন্যুতে রাখা উচিত।
সারাংশ
OAuth 2.0 এর Access Token রিফ্রেশ করার জন্য Refresh Token ব্যবহার করা হয়। এই প্রক্রিয়ায়, যখন একটি অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যায়, তখন একটি নতুন টোকেন প্রাপ্তি সহজে সম্ভব হয়। এটি ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীর পুনরায় লগ ইন করার প্রয়োজন ছাড়া তাদের রিসোর্স অ্যাক্সেস করতে সাহায্য করে এবং দীর্ঘমেয়াদী অ্যাক্সেস নিশ্চিত করে।
Read more