ویرگول
ورودثبت نام
Nastooh
Nastooh
Nastooh
Nastooh
خواندن ۲ دقیقه·۳ روز پیش

Session Management (Authentication & Authorization with Cookie & Token)postman

جمع‌بندی آزمونی سرفصل


Session Management چیست؟

Session Management فرآیند مدیریت وضعیت (State) کاربر بین درخواست‌های مختلف HTTP است.
چون HTTP به‌صورت پیش‌فرض Stateless است، باید با مکانیزم‌هایی مثل Cookie یا Token هویت کاربر را حفظ کنیم.


مفهوم مهم پایه

  • Authentication → شناسایی کاربر (Who are you?)

  • Authorization → تعیین دسترسی (What can you do?)


روش‌های Session Management


1. Cookie-based Session

در این مدل، سرور یک Session ID ایجاد کرده و در Cookie مرورگر ذخیره می‌شود.

Flow:

  1. Login

  2. Server → ایجاد Session

  3. Client → ذخیره Cookie

  4. هر request → Cookie ارسال می‌شود

مثال:

Cookie: sessionId=abc123

ویژگی‌ها:

  • Stateful

  • وابسته به Server

  • ذخیره در Browser

  • مناسب Web applications


مزایا:

  • ساده

  • کنترل کامل روی session

معایب:

  • مقیاس‌پذیری سخت

  • وابستگی به سرور

  • مشکل در Microservices


2. Token-based Authentication

در این روش، سرور یک Token (مثل JWT) صادر می‌کند و Client آن را در هر request ارسال می‌کند.

مثال:

Authorization: Bearer eyJhbGciOi...

ویژگی‌ها:

  • Stateless

  • قابل استفاده در API و Microservices

  • قابل انتقال بین سیستم‌ها


مزایا:

  • مقیاس‌پذیر

  • مناسب موبایل و SPA

  • بدون نیاز به session server

معایب:

  • مدیریت revoke سخت‌تر

  • امنیت وابسته به token handling


Cookie vs Token


Authentication vs Authorization

Authentication:

  • بررسی هویت کاربر

  • Login process

Authorization:

  • بررسی سطح دسترسی

  • Role-based access


نکات مهم آزمونی (L7 → L8)


1. HTTP is Stateless

  • هر request مستقل است

  • session باید جدا مدیریت شود


2. Cookie-based risk

  • session hijacking

  • CSRF attacks

  • server memory overload


3. Token-based risk

  • token leakage

  • no immediate revocation

  • JWT misuse


4. Secure Implementation

  • HTTPS الزامی

  • token expiration

  • refresh token mechanism


5. API Testing Focus

Backend Tester باید بررسی کند:

  • آیا Authorization header enforce شده؟

  • آیا cookie session معتبر است؟

  • آیا expired token reject می‌شود؟

  • آیا unauthorized request → 401 می‌دهد؟

  • آیا forbidden access → 403 می‌دهد؟


خطاهای رایج در آزمون

  • اشتباه گرفتن Authentication و Authorization

  • فکر کردن Cookie و Token هر دو stateless هستند

  • نادیده گرفتن HTTPS requirement

  • عدم درک session persistence

  • confusion بین 401 و 403


نکته امتحانی مهم

در پاسخ کامل باید این کلیدواژه‌ها باشند:

Session Management, Authentication, Authorization, Cookie, Session ID, Token, JWT, Bearer Token, Stateless, Stateful, HTTP Statelessness, Security


نمونه پاسخ کامل کوتاه

Session Management در API برای مدیریت وضعیت کاربر بین درخواست‌ها استفاده می‌شود، زیرا HTTP ذاتاً stateless است. در روش Cookie-based، سرور یک session ایجاد کرده و آن را در cookie ذخیره می‌کند (stateful). در روش Token-based، سرور یک token مانند JWT صادر می‌کند و client آن را در هر request ارسال می‌کند (stateless). Authentication برای شناسایی کاربر و Authorization برای تعیین سطح دسترسی استفاده می‌شود.


کلیدواژه‌ها

Session Management Authentication Authorization Cookie Session ID Token JWT Bearer Token Stateless Stateful API Security HTTP Statelessness Login Session


Session Management (مدیریت وضعیت کاربر): برای حفظ هویت کاربر بین درخواست‌های HTTP استفاده می‌شود.

Cookie-based Authentication (احراز هویت مبتنی بر کوکی): session در سمت سرور ذخیره می‌شود و در cookie ارسال می‌گردد.

Token-based Authentication (احراز هویت مبتنی بر توکن): از token مانند JWT برای احراز هویت stateless استفاده می‌شود.


جمع‌بندی ذهنی

Session یعنی:
👉 “چطور سیستم بفهمد این درخواست از همان کاربر قبلی است”

احراز هویت
۰
۰
Nastooh
Nastooh
شاید از این پست‌ها خوشتان بیاید