私はLaravel 5.3Laravel 5.3のAjaxログインのカスタマイズの資格
にAjaxを経由してログインすることができていますこれは、簡単に適切なパラメータを使用してログインルートへのポスト要求を行うことによって達成されます。
しかし、私のアプリケーションのために、私は、ログインするユーザーのための2つの方法を設計しています - 伝統的なメール/パスワード経由で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呼び出しをチェックするには、ミドルウェア/ Authenticate.phpの行番号 '38'を見てください。 –