API Key در مقابل OAuth 2.0 Access Token
API Key یک رشته ثابت و ساده است که یک برنامه یا سرویس را شناسایی میکند اما معمولاً هویت یک کاربر نهایی خاص یا محدوده دسترسی دقیق را مشخص نمیکند، در حالی که Access Token در OAuth 2.0 معمولاً کوتاهمدت، دارای Scope مشخص و قابل نگاشت به یک کاربر واقعی است و از طریق یک فرآیند تأیید هویت استاندارد صادر میشود.
| ویژگی | API Key | OAuth 2.0 Access Token |
|---|---|---|
| وابستگی به کاربر واقعی | معمولاً خیر | بله |
| طول عمر | معمولاً بلندمدت/ثابت | کوتاهمدت با Refresh |
| کنترل Scope | ضعیف | دقیق و قابل تنظیم |
کِی از API Key استفاده کنیم؟
وقتی میخواهید یک سرویس یا اسکریپت داخلی/شریک تجاری را با سطح دسترسی ساده و بدون فرآیند پیچیده ورود کاربر شناسایی کنید.
کِی از OAuth 2.0 Access Token استفاده کنیم؟
وقتی API باید از طرف یک کاربر واقعی عمل کند، نیاز به محدوده دسترسی دقیق (Scope)، انقضای کوتاهمدت و امکان لغو دسترسی دارید.
مثال API Key
GET /api/data HTTP/1.1
X-API-Key: sk_live_51H8x9K...
مثال OAuth 2.0 Access Token
GET /api/data HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...
اشتباه رایج
اشتباه رایج استفاده از API Key ثابت و بدون انقضا برای دسترسی از طرف کاربران نهایی است؛ چون API Key معمولاً هویت واقعی کاربر یا Scope دقیق را حمل نمیکند، این کار کنترل دسترسی و ردیابی را ضعیف میکند.
جمعبندی
برای شناسایی ساده سرویسها یا شرکای تجاری از API Key و برای دسترسی از طرف کاربر واقعی با کنترل دقیق Scope و انقضا از OAuth 2.0 Access Token استفاده کنید.
