</>مدرسه زیب‌موجیاد بگیر، تمرین کن، بساز
مدرسهNode.jsدرس 14
درس 14 از 20 · ۴۰ دقیقه

JWT یا Session؛ مرز و trade-off

با یک نیاز واقعی شروع می‌کنیم و «JWT یا Session؛ مرز و trade-off» را همان لحظه در مرورگر می‌بینیم.

۰امتیاز شما
نقشه این درس

بعد از این درس چه کاری می‌توانی انجام بدهی؟

  • Access token کوتاه‌عمر ادعای امضاشده است؛ session id به state سرور اشاره می‌کند. انتخاب به نیاز لغو، مقیاس و ریسک بستگی دارد.
  • نمونه را اجرا کنی و نتیجه را پیش از تغییر حدس بزنی
  • یک تغییر کوچک بدهی و اثرش را در مرورگر توضیح بدهی
  • خطای این درس را با DevTools یا اعتبارسنج پیدا و اصلاح کنی
نکته مهم برای شروع Node.js

اگر نتیجه عجیب بود، اول همان عنصر را در DevTools انتخاب کن؛ ساختار و قانون‌های واقعاً اعمال‌شده از حدس‌زدن سریع‌تر راه را نشان می‌دهند.

چرا مهم است؟ Access token کوتاه‌عمر ادعای امضاشده است؛ session id به state سرور اشاره می‌کند. انتخاب به نیاز لغو، مقیاس و ریسک بستگی دارد.

اولین تمرین تو: زمان انقضا و حذف session هنگام logout اضافه کن. پیش از تازه‌کردن صفحه، نتیجه را در یک جمله حدس بزن و بعد حدست را با مرورگر مقایسه کن.

توضیح ساده و قدم‌به‌قدم

از یک مثال کوچک شروع کن

Access token کوتاه‌عمر ادعای امضاشده است؛ session id به state سرور اشاره می‌کند. انتخاب به نیاز لغو، مقیاس و ریسک بستگی دارد. نمونه کوتاه زیر را در فایل «src/auth/session-token.js» بنویس و صفحه را تازه کن. بعد از دیدن نتیجه، سراغ تغییر پیشنهادی برو؛ هدف حفظ‌کردن نشانه‌ها نیست، باید بفهمی کدام خط چه اثری روی صفحه گذاشت.

1

۱. نمونه را خودت تایپ کن

فایل را ذخیره کن و نتیجه را با انتظار این درس مقایسه کن.

2

۲. تغییر درس را انجام بده

زمان انقضا و حذف session هنگام logout اضافه کن.

3

۳. خطا را عمداً ببین

ذخیره token خام session در دیتابیس اثر نشت را بیشتر می‌کند؛ digest را نگه دار. سپس DevTools یا HTML Validator را باز کن و فقط همان علت را اصلاح کن.

نکته مهم

اگر نتیجه عجیب بود، اول همان عنصر را در DevTools انتخاب کن؛ ساختار و قانون‌های واقعاً اعمال‌شده از حدس‌زدن سریع‌تر راه را نشان می‌دهند.

مفهوم‌های اصلی

سه قطعه‌ای که باید بفهمی

JWT یا Session؛ مرز و trade-off

Access token کوتاه‌عمر ادعای امضاشده است؛ session id به state سرور اشاره می‌کند. انتخاب به نیاز لغو، مقیاس و ریسک بستگی دارد.

نتیجه قابل مشاهده

یک token تصادفی برای کاربر و digest جدا برای ذخیره سرور ساخته می‌شود.

نشانه خطا

ذخیره token خام session در دیتابیس اثر نشت را بیشتر می‌کند؛ digest را نگه دار.

سناریوی واقعی

کاربر پس از ورود باید در درخواست بعدی شناخته شود و امکان خروج یا لغو دسترسی وجود داشته باشد.

فرض کن کاربر پس از ورود باید در درخواست بعدی شناخته شود و امکان خروج یا لغو دسترسی وجود داشته باشد. صفحه باز می‌شود، اما هنوز این بخش برای کاربر درست و قابل فهم نیست. در این درس فقط همان قسمت را می‌سازیم تا رابطه کد و نتیجه گم نشود.

بازی ساختن کد

قطعه‌ها را به ترتیب درست بچین

روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمه‌های جابه‌جایی هم می‌توانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.

مرحله ۲ از ۳ · مرتب‌کردن کد
بانک قطعه‌هاقطعه مناسب را انتخاب کن
ترتیب پاسخ تواز بالا به پایین اجرا می‌شود

    هنوز پاسخی بررسی نشده است.

    کارگاه تعاملی

    بررسی ساختار تمرین

    این صفحه کامپایلر کامل Node.js نیست؛ ساختار تمرین را صادقانه بررسی می‌کند و خروجی مورد انتظار را نشان می‌دهد. برای اجرای کامل به محیط رسمی همان زبان نیاز است.

    src/auth/session-token.js
    خروجیآماده
    یک بخش را تغییر بده و دکمه بررسی را بزن.
    بعد از هر تغییر، نتیجه را دوباره بررسی کن.
    تمرین هدایت‌شده

    زمان انقضا و حذف session هنگام logout اضافه کن. پیش از تازه‌کردن صفحه، نتیجه را در یک جمله حدس بزن و بعد حدست را با مرورگر مقایسه کن.

    دام‌های رایج

    این سه اشتباه را انجام نده

    1

    ذخیره token خام session در دیتابیس اثر نشت را بیشتر می‌کند؛ digest را نگه دار.

    2

    تغییر چند بخش هم‌زمان و نامشخص‌شدن علت نتیجه

    3

    اعتماد به ظاهر یک اندازه صفحه و بررسی‌نکردن موبایل یا صفحه‌کلید

    سنجش چندمرحله‌ای

    با 5 سؤال مطمئن شو که مفهوم را گرفته‌ای

    سؤال 1 از 5

    در این درس چه چیزی باید در مرورگر دیده شود؟

    سؤال 2 از 5

    چرا فقط یک بخش را تغییر می‌دهیم؟

    سؤال 3 از 5

    اولین سرنخ خطای این درس چیست؟

    سؤال 4 از 5

    بعد از تغییر کد چه کاری مفید است؟

    سؤال 5 از 5

    چه زمانی آماده درس بعدی هستی؟

    پایان درس 14

    فهمیدی، تغییر دادی، نتیجه را توضیح دادی؟

    فقط در این صورت درس را کامل کن و سراغ مرحله بعد برو.