احراز هویت
یک هدر روی هر درخواست، و اینکه اگر اشتباه باشد چه میشود.
هر درخواست کلید API شما را در یک هدر با خود میآورد. چیزی برای تبادل یا تازهسازی وجود ندارد و خبری از جریان OAuth نیست — کلید تمام ماجراست.
هدر
کلید را در هر درخواست با نام X-API-Key بفرستید:
X-API-Key: dk_live_…API خود کنسول بهجای این، از JWT با هدر bearer استفاده میکند. این دو کاملاً جدا هستند: JWT روی /v1 احراز هویت نمیشود و این کلید هم روی مسیرهای کنسول کار نمیکند.
بررسی اینکه کار میکند
ارزانترین راه بررسی یک کلید، گرفتن فهرست فضاهای کاری است. کلید سالم پاسخ ۲۰۰ با status برابر ok میدهد، حتی اگر هنوز هیچ فضای کاری نداشته باشید:
curl "https://api.daneshyar.info/api/v1/workspaces/" \
-H "X-API-Key: dk_live_9f3aC2xQ7mB1vT8sE4nK6pR0jY5wZ2hL"وقتی احراز هویت شکست میخورد
نبود کلید و نامعتبر بودن کلید هر دو ۴۰۳ برمیگردانند، نه ۴۰۱. این بیشتر کلاینتها را غافلگیر میکند، پس روی ۴۰۳ شرط بگذارید، نه دنبال ۴۰۱ بگردید:
- 403 — هدر X-API-Key اصلاً فرستاده نشده
- 403 — کلیدی که با هیچ اپی مطابقت ندارد
- 404 — کلید معتبر، اما فضای کاری متعلق به اپ دیگری
{
"detail": "Invalid API key"
}{
"status": "failed",
"message": "Workspace not found"
}به دو شکل بدنهٔ پاسخ توجه کنید. خطاهای احراز هویت از خود فریمورک میآیند و فیلد detail دارند؛ بقیه از لایهٔ خود سرویس میآیند و status و message دارند. هر دو را بخوانید، به همین ترتیب.