راکت

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

5 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

5
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

ARON
ARON
@aron

تخصص: برنامه نویس

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

            $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.bayat

تخصص: توسعه دهنده ارشد وب

سیستم احراز هویت لاراول در اصل با 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
@aron

تخصص: برنامه نویس

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

خواهش میکنم

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

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