CodeShot

API Key در مقابل OAuth 2.0 Access Token

API Key یک رشته ثابت و ساده است که یک برنامه یا سرویس را شناسایی می‌کند اما معمولاً هویت یک کاربر نهایی خاص یا محدوده دسترسی دقیق را مشخص نمی‌کند، در حالی که Access Token در OAuth 2.0 معمولاً کوتاه‌مدت، دارای Scope مشخص و قابل نگاشت به یک کاربر واقعی است و از طریق یک فرآیند تأیید هویت استاندارد صادر می‌شود.

ویژگیAPI KeyOAuth 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 استفاده کنید.