سلام دوستان..
یه احراز هویت جداگانه برای ادمین ها دارم..
یه فیلد توی جدول ادمین ها دارم به نام status که یا مقدار 0 داره یا 1
1 به معنی فعال و
0 به معنی مسدود هست
چطوری میتونم بدون نوشتن میدل ور اضافی همون موقع احراز هویت با سیستم پیشفرض لاراول، از ورود کاربرایی که وضعیتشون 0 هست جلوگیری کنم؟
اگر 0 باشه وضعیتش میخوام پیام نمایش بده که حساب کاربری مسدود هست و اجازه ورود نده..
شما این متدو در کنترلر مربوط قرار بده تست کن در واقع متدو باید بازنویسی کنی.
protected function credentials(Request $request)
{
$array = $request->only($this->username(), 'password');
$array['status'] = 1;
return $array;
}
@javadbolouri72
یه نکته مهم : این کلاسو هم در ابتدای کنترلر مربوطت قرار بده
use Illuminate\Http\Request;
البته فکر نکنم در صورت غیر فعال بودن کاربر بتونی به این صورت پیام مناسبی بهش نشون بدی سیستم به صورت پیش فرض پیام میده که اطلاعات وارد شده اشتباه است، مثل قبل. اگر می خوای یک پیام مناسب جهت غیر فعال بودن کاربر نشون بدی بهتره اول بزاری لاگین کنه بعد با یک میدلور بلافاصله وضعیت status رو برسی کنی اگر غیر فعال بود logout ش کنی و یه پیام مناسب بهش نشون بده.@javadbolouri72
گفتم اگه بشه تا جایی که بتونم میدلور اضافه نکنم.. مثلا از میدل ورای احراز هویتی که وجود داره استفاده بشه..
@javadbolouri72
من اگر جای شما باشم حتما از میدلور استفاده میکنم ، چون هم کلین کد هست هم بسیار اسکیلبل و همچنین بسیار ساده ، میتونید برای کلین تر شدن هم میدلور هایی که خودتون اضافه میکنید توی یه پوشه جدا بزارید که شلوغ نباشه ، مثلا midleware/custom .
احراز هویت خود لاراول برای موارد پایه هست ، شما الان فقط status ادمین دارید ، بعدا دو تا مورد دیگه هم اضافه بشه یا چند نوع کاربر دیگه اضافه بشه بخواید اونارم چک کنید ، کارتون هم سخت میشه هم تمیز ازآب درنمیاد.
حتما خودتون بلد هستید ولی حالا من یه بار سادش رو میگم شاید نظرتون تغییر کرد ،
شما میخواید یسری از روت هایی که مربوط به ادمینه قبل از اجرا یه شرطی رو پاس کنه ،چهار کار باید انجام بدید
php artisan make:middleware custom/Admin
این کد تنها کاری که میکنه یه فایل توی پوشه میدلورا اضافه میکنع ، خودتون دستی هم میتونید اضافه کنید.
Route:group(["middleware"=> "admin"], ... )
// یا
->middleware("admin")
اجراش شاید 10 تا 20 دقیقه وقت بگیره ولی خیلی مزیت داره.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟