راکت
ARON
ARON
توسط ARON مطرح شد
5 پاسخ

تغییر گزینه های لاگین

دوستان میشه برای کاربرانی که با یه گارد خاص لاگین میشن تعریف کرد که به جای ایمیل شماره موبایل وارد کنن؟


ثبت پرسش جدید
علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat7 سال پیشمطرح شد
1

شما در یه گارد شخصی سازی شده می‌تونید همه چیز رو تغییر بدید


ARON
ARON
تخصص :برنامه نویس
@aron7 سال پیشمطرح شد
0

بله ممنون به این شکل تغییر دادم

            $this->validate($request, [
                    'mobile'   => 'required',
                    'password' => 'required|min:6'
            ]);

            if (Auth::guard('endUser')->attempt(['mobile'=> $request->mobile , 'password' =>$request->password ] , $request->get('remmember'))){
                    $user_data = auth('endUser')->user();
                    if($user_data->b2b_user->business_id == 0){
                            return redirect()->intended('/user_dashboard');
                    }
                    return redirect()->intended('/dashboard');
            }

علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat7 سال پیشمطرح شد
1

سیستم احراز هویت لاراول در اصل با Guard ها و Provider ها مدیریت میشه

Guard: راهی برای ارائه منطق یا لاجیکی که برای مشخص کردن کاربران لاگین شده استفاده میشه.. مثل session , token

برای اینکه شما بجای ایمیل بتونید شماره تلفن وارد کنید به LoginController مراجعه کنید. میبینید که این کنترلر از تریت AuthenticatesUsers استفاده میکنه.. که اگر این تریت رو باز کنید (/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php) متدی هست به نام username() که می‌تونید تغییر بدید

اما یه راه دیگه هم هست که متد credentials رو داخل LoginController آپدیت کنید .. تا هم Username, Email , Phone رو دریافت کنه و با یکیشون لاگین کنه:

      /**
       * Get the needed authorization credentials from the request.
       *
       * @param  \Illuminate\Http\Request  $request
       * @return array
       */
        protected function credentials(Request $request)
        {
          if(is_numeric($request->get('email'))){
            return ['phone'=>$request->get('email'),'password'=>$request->get('password')];
          }
          elseif (filter_var($request->get('email'), FILTER_VALIDATE_EMAIL)) {
            return ['email' => $request->get('email'), 'password'=>$request->get('password')];
          }
          return ['username' => $request->get('email'), 'password'=>$request->get('password')];
        }

موفق باشید


ARON
ARON
تخصص :برنامه نویس
@aron7 سال پیشمطرح شد
0

این توضیح اخرتون مرسی


علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat7 سال پیشمطرح شد
1

خواهش میکنم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام