#laravel #authentication
#laravel #аутентификация
Вопрос:
У меня есть 2 таблицы с именами Users и User_info
Я хочу выполнить аутентификацию входа в систему с помощью электронной почты и мобильного
Электронная почта хранится в таблице Users, а мобильный телефон — в таблице User_info
Кто-нибудь может меня направить?
Ответ №1:
Вы можете попробовать вот так
$credential = filter_var($request->login, FILTER_VALIDATE_EMAIL) ? 'email' : 'phone';
$login = $request->login;
if($credential == 'email'){
User::where('email',$login)->first();
//Some logic
}else{
User::whereHas('user_info',function($q) use ($login){
$q->where('mobile',$login);
})->first();
//do some logic
}
Комментарии:
1. Буду ли я помещать это в метод
protected function credentials(Request $request)
?2. Да, вы можете поместить это в функцию входа.
Ответ №2:
Сначала выполните поиск входного значения в таблице users. Если результат равен нулю, выполните поиск в таблице user_info.
Пример :
if(count($user = AppUser::where('email',$request->email)->first()) > 0)
\Login Logics like Auth::LoginUsingId($user->id)
elseif(count($user = AppUserInfo::where('phone_number',$request->phone_number)->first()) > 0))
\Login Logics like Auth::LoginUsingId($user->id)