/v2/auth/loginলগ ইন
অ্যাপ কি ও সিক্রেটের বদলে অ্যাকসেস টোকেন নিন, আর রিফ্রেশ কুকি সেট করুন।
এটি সামনের দরজা। স্টোরফ্রন্টের appKey ও secret পাঠান। শুধু এই স্টোরফ্রন্টের এজেন্সির যাচাইকৃত, সক্রিয়, কাস্টমার-ফেসিং ক্রেডেনশিয়াল ঢুকতে পারে। স্টাফ ক্রেডেনশিয়াল দেখতে ঠিক হলেও প্রত্যাখ্যাত — এই সারফেস শপার API-এর জন্য, ব্যাক অফিসের জন্য নয়।
Origin হেডার আবশ্যক ও হুবহু। এটি এমন নিবন্ধিত স্টোরফ্রন্ট হতে হবে যার রোলে CUSTOMER আছে এবং এজেন্সি ম্যাপ করা। সেই এজেন্সি APPROVED হতে হবে, এবং PLATFORM_COLLECTS সেটেলমেন্ট ব্যবহার করা চলবে না।
cURL
curl -X POST https://user.aerolink.dev/v2/auth/login \
-H "Origin: https://acme.trip963.com" \
-H "Content-Type: application/json" \
-d '{"appKey":"ak_live_4f8c2e91d0ab","secret":"••••••••"}'হেডার
Originstringস্টোরফ্রন্ট অরিজিন, যেমন https://acme.trip963.com
Content-Typeapplication/jsonJSON বডি
Originstring আবশ্যক | স্টোরফ্রন্ট অরিজিন, যেমন https://acme.trip963.com |
Content-Typeapplication/json আবশ্যক | JSON বডি |
রিকোয়েস্ট
{
"appKey": "ak_live_4f8c2e91d0ab",
"secret": "••••••••"
}বডি ফিল্ড
appKeystringস্টোরফ্রন্ট অ্যাপ্লিকেশন কি
secretstringস্টোরফ্রন্ট অ্যাপ্লিকেশন সিক্রেট
appKeystring আবশ্যক | স্টোরফ্রন্ট অ্যাপ্লিকেশন কি |
secretstring আবশ্যক | স্টোরফ্রন্ট অ্যাপ্লিকেশন সিক্রেট |
রেসপন্স
{
"message": "Success",
"data": {
"accessToken": "eyJhbGciOiJSUzI1NiIs...",
"expiresIn": 600,
"user": {
"id": "68b1...",
"firstName": "Rahim",
"lastName": "Uddin",
"email": "customer@example.com",
"phoneNumber": "+8801700000000"
}
},
"error": null
}রেসপন্স ফিল্ড
accessTokenstringঅন্য প্রতিটি এন্ডপয়েন্টের জন্য বিয়ারার টোকেন
expiresInnumberঅ্যাকসেস টোকেনের আয়ু সেকেন্ডে
user.idstringকাস্টমার আইডি
user.firstNamestringনামের প্রথম অংশ
user.lastNamestringনামের শেষ অংশ
user.emailstringইমেইল
user.phoneNumberstringফোন
accessTokenstring | অন্য প্রতিটি এন্ডপয়েন্টের জন্য বিয়ারার টোকেন |
expiresInnumber | অ্যাকসেস টোকেনের আয়ু সেকেন্ডে |
user.idstring | কাস্টমার আইডি |
user.firstNamestring | নামের প্রথম অংশ |
user.lastNamestring | নামের শেষ অংশ |
user.emailstring | ইমেইল |
user.phoneNumberstring | ফোন |
বিজনেস রুল
- সাথে সেট হয় Set-Cookie: refreshToken=…; HttpOnly এবং Cache-Control: no-store।
- ইউজারের উপর একটি রিফ্রেশ টোকেন জমা হয় (সর্বোচ্চ ২০, পুরনো সরিয়ে)।
- কাস্টমার JWT পাতলা: এজেন্সি আইডি ও দেশ, প্লাস প্রাইসিংয়ের POS। এজেন্সির নাম, লোগো বা মার্কআপ নেই।
এরর
appKey বা secret নেই
অজানা appKey, ভুল secret, শুধু-কাস্টমার নয়, বা ভুল স্টোরফ্রন্ট। একটি সাধারণ বার্তা — যাতে ক্রেডেনশিয়াল গোনা না যায়।
Origin নিবন্ধিত কিন্তু CUSTOMER মানে না
Origin নেই, অনিবন্ধিত, agencyId নেই, এজেন্সি নেই, APPROVED নয়, বা PLATFORM_COLLECTS
| HTTP | message | কখন |
|---|---|---|
| 400 | validation failed | appKey বা secret নেই |
| 403 | Invalid Credentials | অজানা appKey, ভুল secret, শুধু-কাস্টমার নয়, বা ভুল স্টোরফ্রন্ট। একটি সাধারণ বার্তা — যাতে ক্রেডেনশিয়াল গোনা না যায়। |
| 403 | Invalid Role | Origin নিবন্ধিত কিন্তু CUSTOMER মানে না |
| 404 | Invalid Origin | Origin নেই, অনিবন্ধিত, agencyId নেই, এজেন্সি নেই, APPROVED নয়, বা PLATFORM_COLLECTS |