احراز هویت
اولین قدم برای اتصال به apiهای پذیرش۲۴، پیادهسازی دریافت access_token در ابزارک شماست. بدین منظور ابتدا ابزارک خود را بسازید و پس از آن با انجام مراحل پایین دسترسیهای لازم را از او بگیرید و سپس میتوانید به عنوان وکیل کاربر به منابع تحت مالکیت او دسترسی داشته باشید.
پیشنیازها
- ساخت ابزارک در همدست (opens in a new tab)
- تعیین دسترسی ها لازم ابزارک در تنظیمات همدست
- SDK همدست را در فرانتاند لود کردهاید.
app_keyاپ را درinitializeست کردهاید.x-api-keyرا در بکاند خود نگهداری میکنید.
دریافت دسترسی
گرفتن session_token در فرانتاند
در فرانتاند، با SDK توکن سشن را بگیرید:
window.hamdast.initialize({ app_key: "YOUR_APP_KEY" });
const sessionToken = await window.hamdast.getSessionToken({
scope: ["provider.profile.read"],
});خروجی این مرحله
session_tokenاست.
تبدیل session_token به access_token در بکاند
در این مرحله، بکاند شما باید session_token را به access_token تبدیل کند.
الگوی endpoint به شکل زیر است:
POST https://hamdast.paziresh24.com/api/v1/apps/{app_key}/oauth/access_token
- app_key: کلید اپ شما در مسیر URL
- x-api-key: کلید توسعهدهنده (فقط در بکاند)
- session_token: توکن سشنی که از SDK گرفتهاید
نمونه درخواست:
curl --request POST "https://hamdast.paziresh24.com/api/v1/apps/YOUR_APP_KEY/oauth/access_token" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_DEVELOPER_API_KEY" \
--data '{
"session_token": "SESSION_TOKEN_FROM_SDK"
}'در صورت موفقیت، پاسخ نمونه:
{
"access_token": "eyJ...",
"token_type": "Bearer",
}استفاده از access_token در درخواستهای بعدی
بعد از دریافت توکن دسترسی، آن را در هدر درخواستهای بعدی قرار دهید:
Authorization: Bearer {access_token}خطاهای رایج
| خطا | توضیح | راهکار |
|---|---|---|
USER_CLOSED_POPUP | کاربر پنجره را بسته است | getSessionToken() را دوباره اجرا کنید |
INVALID_SESSION_TOKEN | سشنتوکن نامعتبر یا منقضی شده | یک session_token جدید بگیرید و دوباره تبدیل کنید |
DEVELOPER_NOT_AUTHORIZED | کلید توسعهدهنده برای اپ مجاز نیست | x-api-key و دسترسی اپ را بررسی کنید |
نکات امنیتی
x-api-keyرا فقط در بکاند نگهداری کنید.- تبدیل توکن را فقط در بکاند انجام دهید.
- توکنها را در لاگ عمومی چاپ نکنید.