بازگشت به فهرست ATP →
احراز هویت

ورود کاربر

POST /api/v1/auth/login/ مشاهده در Swagger

ATP - ورود کاربر (POST /api/v1/auth/login/)

Endpoint

POST /api/v1/auth/login/

هدف آزمون

احراز هویت و صدور access/refresh JWT.

شرایط آزمون

  • سرویس core-api در حال اجرا باشد
  • نیازی به احراز هویت نیست

فرآیند آزمون

  1. ثبت‌نام کاربر تست (در صورت نیاز)
  2. POST login با email/password
  3. ذخیره access و refresh token
  4. استفاده از access در هدر Authorization: Bearer

معرفی ویژگی

این endpoint عملیات «ورود کاربر» را در API Patent Genie انجام می‌دهد.

  • ورودی معتبر: اعتبارسنجی در مرز API
  • پاسخ استاندارد: قالب JSON یکسان با سایر endpointها
  • کنترل دسترسی: مطابق policy ماژول مربوطه

سناریوی آزمون

سناریو 1: مسیر موفق

  1. ارسال POST /api/v1/auth/login/
  2. دریافت پاسخ موفق
  3. بررسی ساختار پاسخ

سناریو 2: خطا - درخواست نامعتبر

  1. ارسال درخواست با داده یا شناسه نامعتبر
  2. دریافت کد خطای 4xx
  3. بررسی پیام خطای استاندارد API

سناریو 3: ورود موفق

  1. register سپس login
  2. 200
  3. بررسی access و refresh غیرخالی

سناریو 4: رمز اشتباه

  1. login با password نادرست
  2. 401
  3. بررسی عدم برگرداندن token

قالب API

مولفه نوع نوع داده اجباری توضیحات
email Body string بله ایمیل ثبت‌شده
password Body string بله رمز عبور

Swagger

post:
  summary: ورود کاربر
  responses:
    201:
      description: منبع ایجاد شد
    400:
      description: داده ورودی نامعتبر
    401:
      description: احراز هویت نامعتبر

نمونه ورودی

curl -X POST "http://localhost:8000/api/v1/auth/login/" \
  -H "Content-Type: application/json"

نمونه خروجی

{
  "success": true,
  "data": {
    "access": "eyJ...",
    "refresh": "eyJ...",
    "user": { "id": "...", "email": "user@example.com", "full_name": "Example User" }
  }
}

Status Codes

  • 200: ورود موفق
  • 401: credential نامعتبر

نتیجه مورد انتظار

در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای POST برگردانده می‌شود.

روال صحت‌سنجی

  1. بررسی کد وضعیت HTTP
  2. بررسی فیلد success در بدنه
  3. بررسی عدم افشای داده حساس

توضیحات

  • پیام خطای 401 generic است (افشای نکردن وجود email)
  • refresh برای POST /auth/refresh/