PHP

Laravel 試行系の回数バリデーションを実装してみた

Laravel

 

何回も試行すると一定時間たたないと実行できないというやつです。

 

ログインを例に概念的に書いているのでそのままでは動かない…と思う💦

ふわっと参考までに🐱✨

 

limit_login_attemptsテーブル

id user_id login_attempt attempt_time allow_time
1 1 2 2020-06-22 17:29:38 null
2 2 0 2020-06-22 18:29:38 2020-06-22 19:29:38

 

  • 試行するたびにlogin_attemptの回数をカウント
  • login_attemptが3回以上の時にロックアウト
    ・ログインでallow_timeに現在日時から1時間を加えた日時を設定
    ・allow_timeを迎えるまでログインさせない。
    ・login_attemptを0にリセット
  • ログイン試行した時にattempt_timeが現在日時より1時間以上過去の場合
    ・login_attemptをリセットする
    ・通常の試行を行う
    login_attemptを1に繰り上げる。attempt_timeの更新

 

マイグレーションファイル

 

 

インターフェイス

 

 

リポジトリ

 

 

app/Http/Providers/RepositoryServiceProvider.php

 

 

サービス

 

 

 

 

YouTube

【寿司打チャレンジ】天才プログラマーがタイピングに挑戦!

自責? おまえ嘘つくなよ

フリーターから正社員 インフラは2か月!

インフラにプログラミングは必要 SREのすすめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)