داکیومنت رسمی الوند داکیومنت رسمی الوند
سیستم احراز هویت

سیستم احراز هویت

با استفاده از این پلتفرم می توانید با نحوه کد نویسی سیستم مدیریت محتوا الوند آشنا شوید.

متوسط نویسنده: تیم الوند به‌روزرسانی: 1405/02/22

AlvandCMS از یک سیستم احراز هویت مدرن و امن با پشتیبانی از JWT، OTP، کپچا و محدودیت نرخ استفاده می‌کند. تمام منطق احراز هویت در مسیر core/system/api/auth/ قرار دارد.

معماری


Client Request
    |
    v
core/system/api/auth/
    |-- common.php      # توابع پایه (JSON, CSRF, Settings, CAPTCHA)
    |-- schema.php      # اسکیما
    |-- schema_helpers.php
    |-- login-password.php  # ورود با رمز عبور
    |-- register.php       # ثبت‌نام
    |-- logout.php         # خروج
    |-- verify-otp.php     # تایید OTP
    |-- me.php             # اطلاعات کاربر جاری
    |-- reset/             # بازیابی رمز عبور
    |-- csrf.php           # توکن CSRF
    |-- captcha.php        # تولید کپچا
    |-- start.php          # شروع احراز هویت

روش‌های احراز هویت

ورود با رمز عبور

php
function user_login_password(string $identifier, string $password): int

پشتیبانی از هش‌های قدیمی (SHA1) با مهاجرت خودکار به BCrypt.

ورود با OTP

ارسال کد یکبار مصرف از طریق SMS یا ایمیل.

JWT Token

پس از احراز هویت، یک JWT Token در کوکی jwt_token ذخیره می‌شود:

php
setcookie('jwt_token', $jwt_token, [
    'expires' => time() + 30 * 24 * 60 * 60,
    'path' => '/',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

تنظیمات احراز هویت

تنظیمات در جدول settings با کلید login-register و related=general ذخیره می‌شود:

php
[
  'enable_email_login' => true,
  'enable_sms_login' => true,
  'require_password' => true,
  'otp_length' => 4,
  'max_login_attempts' => 5,
  'captcha_enable' => true
]

محدودیت نرخ (Rate Limiting)

سیستم محدودیت نرخ Session-based با:

    1. تنظیم حداکثر تلاش در یک بازه زمانی
    1. قفل شدن خودکار کاربر پس از تلاش‌های ناموفق
    1. پاکسازی خودکار لاگ‌های قدیمی

php
function attempts_ok(string $identifier, array $as): array

کپچا

کپچای SVG با پشتیبانی از:

    1. اعداد
    1. حروف لاتین
    1. ترکیبی
    1. حروف فارسی
    1. نویز خطوط تصادفی
    1. چرخش تصادفی کاراکترها

سرویس‌های احراز هویت

    1. ورود با رمز عبور - روش سنتی
    1. ورود با OTP - کد یکبار مصرف
    1. ثبت‌نام - ایجاد حساب جدید
    1. بازیابی رمز عبور - از طریق ایمیل یا SMS
    1. خروج - پاک کردن نشست

API های احراز هویت

مسیرتوضیح
POST /api/auth/login-passwordورود با رمز
POST /api/auth/registerثبت‌نام
POST /api/auth/logoutخروج
GET /api/auth/meاطلاعات کاربر
POST /api/auth/verify-otpتایید OTP
GET /api/auth/csrfتوکن CSRF
GET /api/auth/captchaکد کپچا
POST /api/auth/reset/requestدرخواست بازیابی
POST /api/auth/reset/confirmتایید بازیابی
1 رأی
داکیومنت رسمی الوند
© تمامی حقوق برای شرکت دیجیتال نگاران ایرانیان. کلیه حقوق محفوظ است.