はじめに
Laravelの認証機能のBreezeは、簡単に導入することができます。
Breezeはセキュリティ対策の一環として、ログインに連続で失敗した場合に、ログインを一定時間できなくなる仕組みが導入されています。
今回は、その回数やロック時間を変更する手順をまとめました。
Laravel Sailでの開発環境の構築方法は以下をご覧ください。
また、Laravelの認証機能の導入 (Breeze)は以下をご覧ください。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
【紹介】個人開発
私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。
また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。
ログイン失敗回数の変更
ログイン画面にアクセスします。
Emailアドレスを入力し、パスワードを何度も間違えてログインを行います。
デフォルトで、5回ログインに失敗すると、1分間ロックがかかり、ログインができなくなります。
この回数を変更するには、以下のファイルを修正します。
app\Http\Requests\Auth\LoginRequest.php
tooManyAttemptsの第二引数の値を変更します。(デフォルトで5が指定されている)
public function ensureIsNotRateLimited()
{
if (!RateLimiter::tooManyAttempts($this->throttleKey(), 5)) {
return;
}
例えば、この数値を3に変更すると、三回失敗した後にログインのロックがかかります。
ログインロック時間の変更
ログインのロックがかかった後に、ロックされる時間については、デフォルトで1分です。
この時間を変更するには、以下のファイルを修正します。
app\Http\Requests\Auth\LoginRequest.php
以下のコードを確認します。
public function authenticate()
{
$this->ensureIsNotRateLimited();
if (!Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) {
RateLimiter::hit($this->throttleKey());
RateLimiter::hitの第二引数に、時間(秒)を指定します。
(10分を指定する例)
RateLimiter::hit($this->throttleKey(), 600);
ログインロックの時間が変更されました。
ログインロック時間を表示しない
ログインのロック時に、「残り何秒」という表示をしたくない場合は、以下のファイルを変更します。
Laravel8: resources\lang\en\auth.php
Laravel9/10: lang\en\auth.php
以下のコードを確認します。
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
以下のように修正しました。
'throttle' => 'Too many login attempts.',
修正後、残り秒数が表示されなくなりました。
その他
初学者へ
Laravelを初めて触る方へ向け、手順やアドバイスをまとめました。
外部サーバーへ公開
作成したアプリは公開して使ってもらいましょう!
Laravelアプリケーションを外部公開する方法をまとめました。
脆弱性対策
脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があり大変危険です。
作成したアプリケーションは、脆弱性対策も意識しましょう。
GitHubと連携
GitHubと連携する方法を解説しました。
プロジェクトの管理はGitHubを活用しましょう。
GitHub Copilot
GitHub Copilotを導入し、AIにコーディングをサポートしてもらうこともできます。
さいごに
LaravelのBreezeは、簡単に認証の仕組みを導入でき、カスタマイズも楽ですので、是非試してみてください。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
コメント