Session و Role و لاگ ها
این صفحه روی بخش های runtime احراز هویت تمرکز دارد: کاربر فعلی، نقش فعال، localization سشن، و لاگ های امنیتی.
اگر از flow آماده package استفا ده کنید، بخش زیادی از این رفتارها خودکار اجرا میشوند. اگر login یا OTP یا role selection را خودتان مینویسید، این صفحه APIهای لازم برای تکمیل همان flow را نشان میدهد.
کار با کاربر احراز هویت شده
متدهای کلیدی
object Authenticator::user(?object $user = null)
int|null Authenticator::id()
bool Authenticator::canLogin(object $user)
bool Authenticator::isCurrentUserStatusActive()
object|null Authenticator::findUserByCredential(string $authFieldValue, ?int $personType = null)
bool Authenticator::validatePassword(string $password)
Authenticator::user(?object $user = null): object
اگر پارامتر ندهید، کاربر جاری را برمیگرداند. اگر مدل کاربر بدهید، همان کاربر را به عنوان user فعال instance تنظیم میکند.
| پارامتر | نوع | توضیح |
|---|---|---|
user | object | null | مدل کاربر برای تنظیم context جاری |
Authenticator::findUserByCredential(string $authFieldValue, ?int $personType = null): ?object
کاربر را بر اساس auth field فعالی که قبلاً با useAuthField() تنظیم شده پیدا میکند.
| پارامتر | نوع | توضیح |
|---|---|---|
authFieldValue | string | مقدار خام ورودی کاربر |
personType | int | null | در پروژه های حقیقی/حقوقی برای محدود کردن جستجو |
Authenticator::canLogin(object $user): bool
بررسی میکند آیا وضعیت کاربر اجازه ورود میدهد یا نه.
| پارامتر | نوع | توضیح |
|---|---|---|
user | object | مدل کاربر |
Authenticator::validatePassword(string $password): bool
password ورودی را با رمز هششده کاربر جاری مقایسه میکند.
| پارامتر | نوع | توضیح |
|---|---|---|
password | string | رمز خامی که کاربر وارد کرده است |
مثال: custom password login
use Dornica\AccessHub\Authentication\Facades\Authenticator;
$user = Authenticator::findUserByCredential(request('login'), request('person_type'));
if (! $user || ! Authenticator::canLogin($user)) {
abort(403, 'کاربر امکان ورود ندارد.');
}
if (! Authenticator::user($user)->validatePassword(request('password'))) {
abort(422, 'رمز عبور معتبر نیست.');
}
نقش فعال کاربر
بعد از login، ممکن است کاربر چند role داشته باشد. Authenticator میتواند role فعال را انتخاب یا تغییر دهد و permissionهای موثر را بر اساس همان role برگرداند.
متدهای کلیدی
Collection Authenticator::defaultRole()
Collection Authenticator::currentRole()
Collection Authenticator::role(?object $role = null)
void Authenticator::chooseRole(int $roleId)
void Authenticator::changeRole(int $roleId)
Collection Authenticator::roles()
Collection Authenticator::userRoles()
mixed Authenticator::currentUserRole()
Collection Authenticator::permissions()
مثال
use Dornica\AccessHub\Authentication\Facades\Authenticator;
$roles = Authenticator::userRoles();
Authenticator::chooseRole($request->integer('role_id'));
$permissions = Authenticator::permissions();
زبان و پرتال
اگر سیستم شما چندزبانه یا چندپرتاله است، Authenticator بخش localization مرتبط با session کاربر را هم مدیریت میکند.
متدهای مهم
bool Authenticator::hasPortalChanged(int $newPortalId)
bool Authenticator::hasLanguageChanged(int $newLanguageId)
void Authenticator::changePortal(int $newPortalId)
void Authenticator::changeLanguage(int $newLanguageId)
void Authenticator::choosePortal(int $newPortalId)
void Authenticator::chooseLanguage(int $newLanguageId, ?int $portalId = null)
bool Authenticator::shouldPromptLocalization()
Collection Authenticator::portals()
Collection Authenticator::activePortals()
Collection Authenticator::portal(object|int|null $portal = null)
Collection Authenticator::language(object|int|null $language = null)
Collection Authenticator::portalLanguages(object|int|null $portal = null)
array Authenticator::buildLocalizationSelectionData()