Next.js 15 Fullstack Web Apps · درس

إدارة الجلسات وJWTs

افهم كيفية إدارة الجلسات، وكيفية استخدام JSON Web Tokens (JWTs) لمصادقة المستخدمين بأمان.

الدرس 2 من 411 خطوة

إدارة الجلسات وJWTs درس مجاني في Next.js 15 Fullstack Web Apps على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Next.js 15 Fullstack Web Apps، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Next.js 15 Fullstack Web Apps 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

What are Sessions?

On the web, a "session" is a way for a server to remember a user over multiple requests. Think of it like a conversation with a short-term memory.

Since HTTP requests are stateless (each request is independent), sessions help maintain context about who you are and what you're doing.

Why We Need Sessions

Imagine you log into an online store. Without a session, every time you click a new product or add an item to your cart, the server would forget you're logged in!

Sessions link together related requests from the same user, allowing for a personalized and continuous experience across your application.

Traditional Sessions & Cookies

Traditionally, sessions involve the server creating a unique "session ID" for a user after login. This ID is stored on the server.

The server then sends this session ID to the browser, usually in a cookie. The browser automatically sends this cookie back with every subsequent request, allowing the server to identify the user.

Meet JSON Web Tokens (JWTs)

JSON Web Tokens (pronounced "jot") offer a modern alternative to traditional sessions. They are self-contained, compact, and digitally signed pieces of information.

Instead of a server storing session data, JWTs store user-specific information directly within the token itself.

JWT Structure: Header

A JWT consists of three parts, separated by dots: Header, Payload, and Signature.

The Header usually contains two fields:

  • alg: The algorithm used for signing the token (e.g., HMAC SHA256 or RSA).
  • typ: The type of the token, which is usually "JWT".
{
  "alg": "HS256",
  "typ": "JWT"
}

JWT Structure: Payload

The Payload contains "claims" – statements about an entity (like a user) and additional data. Claims can be:

  • Registered Claims: Standard claims like iss (issuer), sub (subject), exp (expiration time).
  • Public Claims: Custom claims defined by you, but registered in the IANA JWT Registry.
  • Private Claims: Custom claims agreed upon by parties, not publicly registered.
{
  "sub": "1234567890",
  "name": "Jane Doe",
  "admin": true,
  "iat": 1516239022,
  "exp": 1516242622
}

JWT Structure: Signature

The Signature is created by taking the encoded Header, the encoded Payload, a secret key, and the algorithm specified in the header, then signing them.

This signature is crucial! It verifies that the sender of the JWT is who it says it is and that the message hasn't been tampered with along the way.

How JWTs Work in Practice

Here's a typical flow:

  1. User logs in with credentials.
  2. Server verifies credentials and creates a JWT.
  3. Server sends the JWT back to the client.
  4. Client stores the JWT (e.g., in local storage or a cookie).
  5. For subsequent requests, the client sends the JWT (usually in an Authorization header).
  6. Server verifies the JWT's signature and expiration before processing the request.

JWT Pros and Cons

Benefits:

  • Stateless: Servers don't need to store session data, improving scalability.
  • Decentralized: Tokens can be verified by any server that has the secret key.
  • Mobile-friendly: Easy to use across different clients (web, mobile apps).

Considerations:

  • Storage: Where to securely store tokens on the client side.
  • Revocation: Harder to revoke an active token before it expires.
  • Size: Can be larger than a simple session ID.

Quick Check on JWTs

Test your understanding of JSON Web Tokens!

Session & JWT Recap

Great job! In this lesson, you learned about:

  • The purpose of web sessions in maintaining user context.
  • How traditional sessions use server-side storage and cookies.
  • The structure (Header, Payload, Signature) and function of JSON Web Tokens (JWTs).
  • The workflow of using JWTs for authentication.
  • Key benefits and considerations when choosing JWTs for your applications.

Next, we'll dive into protecting routes and API endpoints using Next.js Middleware!

البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
48

الأسئلة الشائعة

هل درس «إدارة الجلسات وJWTs» مجاني؟

نعم — نص درس «إدارة الجلسات وJWTs» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Next.js 15 Fullstack Web Apps، انتقل إلى CoddyKit PRO. تتضمن دورة Next.js 15 Fullstack Web Apps 4 دروس في المجموع.

ماذا ستتعلم في «إدارة الجلسات وJWTs»؟

افهم كيفية إدارة الجلسات، وكيفية استخدام JSON Web Tokens (JWTs) لمصادقة المستخدمين بأمان. تتمرن على Next.js 15 Fullstack Web Apps مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Next.js 15 Fullstack Web Apps؟

لا تُشترط خبرة سابقة. Next.js 15 Fullstack Web Apps على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إدارة الجلسات وJWTs»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Next.js 15 Fullstack Web Apps هذا؟

نعم. كل درس في Next.js 15 Fullstack Web Apps يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. دمج NextAuth.js
  2. إدارة الجلسات وJWTs
  3. البرمجيات الوسيطة والتحكم في الوصول
  4. التحكم في الوصول المستند إلى الأدوار (RBAC)
← العودة إلى Next.js 15 Fullstack Web Apps