نظام مصادقة وإدارة صلاحيات متكامل يعتمد على JWT مع دعم الأدوار والخدمات المتعددة وتواصل آمن بين الـ Microservices
مصادقة بتوكنات JWT مع دعم التجديد والإلغاء. صلاحية التوكن 480 دقيقة.
نظام أدوار وصلاحيات متعدد المستويات مع دعم الرفض الصريح والصلاحيات المؤقتة.
تواصل آمن بين الخدمات عبر توكنات مخصصة مع التحقق من IP وتسجيل الأنشطة.
تحديد أدوار لكل خدمة للتحكم بمن يقدر يسجل دخول. إضافة وتعديل الأدوار ديناميكياً.
تسجيل شامل لجميع الأحداث: تسجيل دخول، تغييرات الأدوار، تعديلات الصلاحيات مع تتبع IP.
كاش ذكي للصلاحيات والأدوار لأداء سريع مع TTL قابل للتخصيص وتنظيف تلقائي.
تسجيل الدخول، التسجيل، إدارة الجلسات والتوكنات
/api/v1/auth/register
تسجيل مستخدم جديد
public
name
required
string - اسم المستخدم
email
required
email - البريد الإلكتروني (فريد)
password
required
string - كلمة المرور (min:8، أحرف كبيرة وصغيرة وأرقام)
password_confirmation
required
string - تأكيد كلمة المرور
phone
required
string - رقم الهاتف (فريد)
roles
optional
array - أسماء الأدوار
{
"success": true,
"message": "تم التسجيل بنجاح",
"data": {
"user": {
"id": "uuid",
"name": "Ahmed",
"email": "ahmed@example.com",
"roles": ["user"]
},
"token": "eyJ0eXAiOiJKV1Qi..."
}
}
/api/v1/auth/login
تسجيل الدخول
public
identifier
required
string - البريد أو رقم الهاتف
password
required
string - كلمة المرور
ملاحظة: إذا الخدمة عندها أدوار محددة، لازم يكون عند المستخدم واحد من هالأدوار عشان يقدر يسجل دخول.
{
"success": true,
"message": "تم تسجيل الدخول بنجاح",
"data": {
"user": {
"id": "uuid",
"name": "Ahmed",
"email": "ahmed@example.com",
"roles": ["admin"],
"permissions": [...]
},
"token": "eyJ0eXAiOiJKV1Qi..."
}
}
الطريقة الرئيسية لتسجيل الدخول عبر التطبيق — SMS أو WhatsApp
/api/v1/auth/otp/send
phone requireduser_type optional — يُكتشف تلقائياًchannel sms | whatsapp/api/v1/auth/otp/verify
phone requiredcode required 4-8 أرقامuser_type optional/api/v1/auth/otp/complete-registration
registration_token requiredname requireduser_type required merchant | investor | sponsoremail optional⚡ المزود: Authentica (SMS + WhatsApp) — OTP_TEST_MODE مفعل حالياً، الرمز 123456
/api/v1/auth/me
جلب بيانات المستخدم الحالي مع الأدوار والصلاحيات الكاملة
/api/v1/auth/refresh
تجديد التوكن المنتهي. يرجع توكن جديد مع مدة الصلاحية
{ token, token_type, expires_in }
/api/v1/auth/logout
تسجيل خروج المستخدم وإلغاء التوكن الحالي نهائياً
/api/v1/auth/change-password
auth
تغيير كلمة المرور
current_password - كلمة المرور الحاليةpassword - كلمة المرور الجديدةpassword_confirmation - التأكيد/api/v1/auth/profile
auth
تحديث الملف الشخصي
name - الاسمphone - رقم الهاتف/api/v1/auth/forgot-password
public
إرسال رابط استعادة كلمة المرور
email - البريد الإلكتروني/api/v1/auth/reset-password
public
إعادة تعيين كلمة المرور
token + email + password/api/v1/auth/email/send-verification
auth
إرسال رمز التحقق من البريد الإلكتروني
/api/v1/auth/email/verify
auth
التحقق من البريد الإلكتروني
code required - رمز التحقق المرسل للبريد/api/v1/auth/phone/send-otp
auth
إرسال رمز التحقق لتوثيق رقم الجوال
phone required - رقم الجوالchannel sms | whatsapp/api/v1/auth/phone/verify-otp
auth
تأكيد رقم الجوال بالرمز المرسل
phone required - نفس الرقمcode required - رمز التحقق/api/v1/admin/stats/users
auth
users.view
إحصائيات المستخدمين للوحة تحكم الأدمن
عرض، إنشاء، تعديل وحذف المستخدمين مع إدارة الأدوار والصلاحيات
/api/v1/users
قائمة المستخدمين
users.view
/api/v1/users
إنشاء مستخدم
users.create
/api/v1/users/{id}
تفاصيل مستخدم
users.view
/api/v1/users/{id}
تحديث مستخدم
users.update
/api/v1/users/{id}
حذف مستخدم
users.delete
/api/v1/users/{id}/roles
تعيين أدوار
roles.update
/api/v1/users/{id}/permissions
تعيين صلاحيات
permissions.update
/api/v1/users/{id}/permissions
عرض صلاحيات
permissions.view
نظام RBAC كامل لإدارة الأدوار والصلاحيات مع ربط متعدد المستويات
/api/v1/roles
القائمة
/api/v1/roles
إنشاء دور
/api/v1/roles/{id}
التفاصيل
/api/v1/roles/{id}
تحديث
/api/v1/roles/{id}
حذف
/api/v1/roles/{id}/permissions
مزامنة الصلاحيات
/api/v1/roles/{id}/permissions/add
إضافة صلاحيات
/api/v1/roles/{id}/permissions/remove
إزالة صلاحيات
/api/v1/permissions
القائمة
/api/v1/permissions
إنشاء صلاحية
/api/v1/permissions/resource
إنشاء CRUD لمورد
/api/v1/permissions/{id}
التفاصيل
/api/v1/permissions/{id}
تحديث
/api/v1/permissions/{id}
حذف
POST /resource - ينشئ صلاحيات CRUD كاملة (view, create, update, delete) لمورد واحد
تسجيل وإدارة الـ Microservices مع التواصل الآمن عبر Service Tokens
/api/v1/services
تسجيل خدمة جديدة
services.create
name
required
string - اسم الخدمة (فريد)
display_name
required
string - الاسم المعروض
description
optional
string - الوصف
allowed_ips
optional
array - IPs المسموح بها
webhook_url
optional
url - رابط الـ Webhook
roles
optional
array - أدوار الخدمة (تحدد من يقدر يسجل دخول)
{
"success": true,
"message": "تم تسجيل الخدمة بنجاح",
"data": {
"id": "uuid",
"name": "expo-app",
"token": "svc_xxx...",
"secret": "sec_xxx...",
"roles": [
{ "name": "admin" }
]
},
"warning": "احفظ التوكن والسر!"
}
تحذير: التوكن والسر يظهروا مرة وحدة فقط! لازم تحفظهم فوراً.
/api/v1/services
قائمة الخدمات
services.view
/api/v1/services/{id}
تفاصيل خدمة
services.view
/api/v1/services/{id}
تحديث خدمة (+ roles sync)
services.update
/api/v1/services/{id}
حذف خدمة
services.delete
/api/v1/services/{id}/regenerate-token
تجديد التوكن
services.update
/api/v1/services/{id}/roles
عرض أدوار الخدمة
services.view
/api/v1/services/{id}/roles
إضافة أدوار للخدمة
services.update
/api/v1/services/{id}/roles
مزامنة الأدوار
services.update
/api/v1/services/{id}/roles
إزالة أدوار
services.update
/api/v1/service/verify-token
التحقق من توكن المستخدم
{ "token": "jwt..." }/api/v1/service/check-permission
التحقق من صلاحية المستخدم
{ "token", "permission" }/api/v1/service/user-info
جلب معلومات المستخدم
{ "token": "jwt..." }أمثلة سريعة للبدء بإستخدام الـ API
curl -X POST https://auth-service-api.mahamexpo.sa/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"identifier": "admin@auth-service.local",
"password": "password",
"service_name": "expo-app"
}'
Authorization: Bearer {token}جميع المتغيرات المطلوبة والاختيارية لتشغيل خدمة المصادقة
APP_KEY
مفتاح التشفير الرئيسي للتطبيق
required
DB_PASSWORD
كلمة سر قاعدة البيانات MySQL
required
JWT_SECRET
المفتاح السري لتوقيع JWT tokens
required
APP_NAME
Maham Auth Service
اسم التطبيق
optional
APP_ENV
production
بيئة التشغيل
optional
APP_DEBUG
false
وضع التصحيح
optional
APP_URL
https://auth-service-api.mahamexpo.sa
رابط التطبيق الرئيسي
optional
APP_LOCALE
ar
اللغة الافتراضية
optional
DB_CONNECTION
mysql
نوع قاعدة البيانات
optional
DB_HOST
auth-mysql
مضيف قاعدة البيانات
optional
DB_PORT
3306
منفذ قاعدة البيانات
optional
DB_DATABASE
auth_service
اسم قاعدة البيانات
optional
DB_USERNAME
auth_user
مستخدم قاعدة البيانات
optional
REDIS_HOST
auth-redis
مضيف Redis
optional
REDIS_PORT
6379
منفذ Redis
optional
REDIS_PASSWORD
(empty)
كلمة سر Redis
optional
CACHE_STORE
redis
محرك التخزين المؤقت
optional
CACHE_PREFIX
auth_
بادئة مفاتيح الكاش
optional
QUEUE_CONNECTION
redis
محرك قائمة المهام
optional
SESSION_DRIVER
redis
محرك الجلسات
optional
SESSION_LIFETIME
120
عمر الجلسة (دقائق)
optional
JWT_TTL
60
عمر التوكن (دقائق)
optional
JWT_REFRESH_TTL
20160
عمر تجديد التوكن (دقائق = 14 يوم)
optional
JWT_ALGO
HS256
خوارزمية التشفير
optional
JWT_BLACKLIST_ENABLED
true
تفعيل القائمة السوداء للتوكنات
optional
TRUSTED_SERVICE_IPS
172.0.0.0/8
عناوين IP الموثوقة للخدمات
optional
RATE_LIMIT_PER_MINUTE
60
حد الطلبات في الدقيقة
optional
BCRYPT_ROUNDS
12
جولات تشفير كلمات المرور
optional
LOG_CHANNEL
stack
قناة التسجيل
optional
LOG_LEVEL
warning
مستوى التسجيل
optional
MAIL_MAILER
log
محرك البريد (log, smtp, mailgun)
optional
MAIL_HOST
(empty)
مضيف SMTP
optional
MAIL_PORT
587
منفذ SMTP
optional
MAIL_USERNAME
(empty)
مستخدم SMTP
optional
MAIL_PASSWORD
(empty)
كلمة سر SMTP
optional
MAIL_ENCRYPTION
tls
تشفير البريد
optional
MAIL_FROM_ADDRESS
noreply@mahamexpo.sa
عنوان المرسل
optional
FILESYSTEM_DISK
local
نظام تخزين الملفات
optional