pooria vakili
pooria vakili
خواندن ۲ دقیقه·۳ ماه پیش

انواع token در برنامه نویسی فرانت اند

در این پاسخ، من به تفاوت‌های اصلی بین توکن‌های دسترسی (access token)، توکن‌های بازنویسی (refresh token) و توکن‌های معمول (normal token) اشاره خواهم کرد.
توکن‌های دسترسی (Access Token)
حاوی اطلاعات کاربر و مجوزهای مورد نیاز است
معمولاً دارای زمان انقضای کوتاه (هر چند ساعت یا روز) است
برای هر درخواست به سرور ارسال می‌شوند
نباید در محیط کلاینت ذخیره شوند
توکن‌های بازنویسی (Refresh Token)
حاوی اطلاعات کاربر است اما جزئیات کمتری نسبت به توکن‌های دسترسی
معمولاً دارای زمان انقضای طولانی‌تر است
ذخیره می‌شوند و فقط زمانی استفاده می‌شوند که توکن دسترسی شود
باید با دقت نگه‌داری شوند تا از سوءاستفاده جلوگیری شود
توکن‌های معمول (Normal Token)
این اصطلاح معمولاً برای توکن‌هایی استفاده می‌شود که ویژگی‌های خاصی ندارند
ممکن است ترکیبی از ویژگی‌های توکن‌های دسترسی و بازنویسی داشته باشند
عمر آنها می‌تواند کوتاه یا طولانی باشد، بسته به طراحی سیستم
تفاوت‌ها
1.     زمان انقضاء:
Access token کوتاه‌مدت
Refresh token طولانی‌مدت
Normal token می‌تواند کوتاه یا طولانی‌مدت
2.  نحوه استفاده:
Access token برای هر درخواست به سرور
Refresh token برای تجدید توکن دسترسی
Normal token بسته به طراحی سیستم، ممکن است برای هر دو هدف استفاده شود
3.  ذخیره‌سازی:
Access token معمولاً در محیط کلاینت ذخیره نمی‌شوند
Refresh token در محیط کلاینت ذخیره می‌شوند
Normal token روش ذخیره‌سازی آن بستگی به طراحی سیستم دارد
4.  امنیت:
Access token نیاز به امنیت بالا دارد
Refresh token نیاز به امنیت بالایی دارد و باید با دقت نگه‌دارده شود
Normal token نیاز به امنیت مناسب دارد، اما ممکن است کمتر از توکن‌های دسترسی و بازنویسی باشد
بهترین شیوه‌ها
همیشه از HTTPS برای انتقال توکن‌ها استفاده کنید
توکن‌های دسترسی را در محیط کلاینت ذخیره نکنید
توکن‌های بازنویسی را با دقت نگه‌دارید و فقط در سرور ذخیره کنید
سیاست چرخش توکن‌ها را پیاده‌سازی کنید
مکانیزم لغو توکن‌های بازنویسی را دارد
با در نظر گرفتن این تفاوت‌ها و بهترین شیوه‌ها، شما می‌توانید از مزایای توکن‌های مختلف در حالی که همچنان امنیت سیستم خود را حفظ می‌کنید، استفاده کنید.

tokenjshtmlcss
Midlevel Front-End Developer |Frontend developer proficient in HTML, CSS, JS, TypeScript, React, Vue.js| Experienced with Nuxt.js, Next.js
شاید از این پست‌ها خوشتان بیاید