Throttleのところに説明されていますが、以下のようにログイン試行を制限します。
ログインの失敗はthrottleというテーブルにglobal, ipアドレス毎, ユーザ毎にそれぞれ記録されていて、これを元に制限するかどうかを決めます。設定もconfig/cartalyst.sentinel.php
の中にそれぞれ毎にあります。
php
1 'throttling' => [
2
3 'model' => 'Cartalyst\Sentinel\Throttling\EloquentThrottle',
4
5 'global' => [
6
7 'interval' => 900,
8
9 'thresholds' => [
10 10 => 1,
11 20 => 2,
12 30 => 4,
13 40 => 8,
14 50 => 16,
15 60 => 12
16 ],
17
18 ],
19
20 'ip' => [
21
22 'interval' => 900,
23
24 'thresholds' => 5,
25
26 ],
27
28 'user' => [
29
30 'interval' => 900,
31
32 'thresholds' => 5,
33
34 ],
35
36 ],
まずintervalで過去何秒間をチェック対象にするかが決まります。
回数のしきい値の設定のやり方は2通りあって、回数だけを設定する方法と、attempt=>delayのペアを配列で設定する方法です。
過去interval秒以内のログイン失敗がthresholds(回)を超えている間は新たなログインができません。
- attempt=>delayのペアを配列で設定した場合
過去interval秒以内のログイン失敗がattempt回を超えていた場合に最後の試行からdelay秒以内ならログインができません。(attempt回数が最大のものが選ばれます)
この場合はipアドレス毎の制限にひっかかったことになります。いじっていなければ900秒に5回です。
これを完全に回避することはできませんが、設定でintervalを短くしたり、thresholdを大きな値にすると実質的に回避できると思います。
なお、特別なアドレスからだけ制限しないというような機能は提供されていません。