بله ممنون به این شکل تغییر دادم
$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');
}
سیستم احراز هویت لاراول در اصل با 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')];
}
موفق باشید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟