Авторизуйтесь с помощью Auth в Laravel 5.4 с или условием - PullRequest
0 голосов
/ 09 мая 2018

У меня есть форма входа в систему с 2 полями. Первый может принимать как электронную почту, так и мобильный, второй - пароль.

Как я могу проверить это с помощью аутентификации?

мой фрагмент кода: -

if ( Auth::check([
            'email' => $request->email, 
            'mobile' => $request->email, 
            'password' => $request->password,
            false, 
            false
        ])) 
    {
        $user = Auth::user();
        return $user;
    }

Но это сочетание клавиш с оператором и. Как я могу получить электронную почту или мобильный телефон и пароль.

1 Ответ

0 голосов
/ 16 мая 2018

Добавьте условие перед Auth::check(), чтобы определить формат предоставленного логина (электронная почта или мобильный). Сначала измените имя поля на логин. Далее:

$credentials = [];
if (filter_var($request->login, FILTER_VALIDATE_EMAIL)) {
    $credentials['email'] = $request->login;
} else {
    $credentials['mobile'] = $request->login;
}
if ( Auth::attempt($credentials)) {
    $user = Auth::user();
    return $user;
}

И не забывайте использовать Auth::attempt() вместо Auth::check() для проверки того, что пользователь уже вошел в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...