سلام به همه
تا حالا شده تو یه مصاحبه فنی ازتون دربارهی JWT بپرسن و شما با یه جواب ساده کار رو راه بندازین؟
من خودم این تجربه رو داشتم! یه بار توی یه مصاحبه، مصاحبهکننده پرسید: JWT چیه و چرا ازش استفاده میکنیم؟» و من با یه جواب ساده گفتم: «یه توکن امنیه که اطلاعات رو بین کلاینت و سرور جابهجا میکنه و دیگه سرور نیازی نداره حالتها رو ذخیره کنه.
مصاحبه کننده ازم میخواست که بیشتر توضیح بدم که خب من اطلاعات کاملی نداشتم
یکم بیشتر با JWT آشنا بشیم اول: JWT یک استاندارد باز (RFC 7519) برای ایجاد توکنهای امن و قابل اعتماد است که به صورت JSON تعریف میشه. این توکنها معمولاً برای احراز هویت کاربران و انتقال اطلاعات بین سرویسها استفاده میشن
ساختار JWT:
یک JWT از سه بخش اصلی تشکیل شده:
بخش Header: شامل اطلاعاتی مانند نوع توکن و الگوریتم رمزنگاری.
بخش Payload: دادههایی که میخواهیم انتقال دهیم، مثل اطلاعات کاربر یا نقشها.
بخش Signature: برای تأیید اصالت توکن و جلوگیری از دستکاری.
مزایا استفاده از JWT چیه؟
حالت (Stateless) هست، یعنی سرور نیازی نداره اطلاعات توکن رو ذخیره کنه.
امن هست و با یه امضای دیجیتال (Signature) از دستکاری جلوگیری میکنه.
توی سیستمهای بزرگ و میکروسرویسها خیلی به درد میخوره.
این موضوع هم یادمون باشه که اگه JWT درست استفاده نشه، میتونه خطرناک باشه. مثلاً اگه توکنها رو به درستی expire نکنیم یا اطلاعات حساس رو داخلش ذخیره کنیم، ممکنه دردسرساز بشه!
@DevTwitter |