Я могу войти в систему с помощью Ajax в Laravel 5.3Laravel 5,3 Ajax Войти Настроить учетные данные
Это легко достигается путем создания запроса на пост входа маршрута с соответствующими параметрами.
Однако для моего приложения, я проектирование два способа для пользователя, чтобы войти в системе, - с помощью традиционной электронной почты/пароль комбинацию, которая Laravel уже поддерживает, и с помощью кодадоступа, который будет распространяться и позволить обладателю указанного кода войти в систему без сочетания электронной почты и пароля. В моем приложении нет «регистрации», есть только разные уровни аутентификации.
Во всяком случае, в /vendor/laravel/framework/src/Illuminate/Foundation/Auth
я редактированием AuthenticatesUsers.php
и понять, что эта функция специально обрабатывает попытки входа в систему:
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->has('remember')
);
}
Мой вопрос, как я могу изменить успех attempt()
на основе содержания запроса ?
Другими словами, если кто-то отправляет код доступа ajax, он не должен быть протестирован против комбинации электронной почты и пароля, поскольку он, очевидно, потерпит неудачу. Аналогично, если они отправляют ajax с параметрами электронной почты/пароля, его не следует тестировать по списку доступных кодов доступа.
Есть ли я на правильном пути? Где в Laravel я могу пойти, чтобы сделать контингент Auth::attempt()
по запросу?
Я бы не советовал редактировать файл фреймворка. Существует полный раздел для ручной аутентификации пользователя без документации https://laravel.com/docs/5.2/authentication#authenticating-users. Также, чтобы проверить ваши вызовы ajax, посмотрите номер строки '38' в' middleware/Authenticate.php', который должен дать вам некоторую идею. –