Agiletoolkit Auth/basic クラスを使用すると、制限なしでログインを試行できます。そして、ログイン試行の失敗回数を制限する方法を探しています。このクラスのいくつかのメソッドをオーバーライドしようとしましたが、ajax リロードを使用しているため、php コードが正しく実行されません。
どんな提案でも大歓迎です。
どうもありがとう、
Agiletoolkit Auth/basic クラスを使用すると、制限なしでログインを試行できます。そして、ログイン試行の失敗回数を制限する方法を探しています。このクラスのいくつかのメソッドをオーバーライドしようとしましたが、ajax リロードを使用しているため、php コードが正しく実行されません。
どんな提案でも大歓迎です。
どうもありがとう、
AfterLoad フックを使用してセッションまたは Cookie に Model_User (通常は Auth で使用される) の使用回数を保存し、必要な場所で確認できると思います。
おっとっと。ログインに失敗しました。したがって、モデルはロードされません。ログインフォームのボタンのクリック数をカウントし、それをどこかに保存するだけです (Cookie、データベース)。したがって、独自のログインフォームを作成し、フォームが送信されたときに次のような条件を追加します。
$m = $this->add('Model_User');
$f = $this->add("Form");
$f->setModel($m, array('email', 'password'));
$f->addSubmit("Log In");
if ($f->isSubmitted()){
//Limmiting
if($_COOKIE[$this->api->name."_count_failed_login"] >= 5/*Here's you limit number*/){
/*redirect or something else*/
}
if (/*here should be you condition*/){
$_COOKIE[$this->api->name."_count_failed_login"] = 0;
$this->api->auth->login($f->get("email"));
$f->js()->univ()->redirect("index")->execute();
}else{
/* when login is failed*/
if($_COOKIE[$this->api->name."_count_failed_login"]){
$_COOKIE[$this->api->name."_count_failed_login"]++;
}else{
$_COOKIE[$this->api->name."_count_failed_login"] = 1;
}
$this->js()->univ()->alert('Wrong username or password')->execute();
}
}
私はそれをチェックしませんでした。たぶん、いくつかの調整が必要です。ただのアイデア。
それが役立つことを願っています。