Browse Source

update: add register ip limit

tokumeikoi 3 years ago
parent
commit
e3ffdb7bce

+ 4 - 1
app/Http/Controllers/Admin/ConfigController.php

@@ -103,7 +103,10 @@ class ConfigController extends Controller
                 'recaptcha_site_key' => config('v2board.recaptcha_site_key'),
                 'tos_url' => config('v2board.tos_url'),
                 'currency' => config('v2board.currency', 'CNY'),
-                'currency_symbol' => config('v2board.currency_symbol', '¥')
+                'currency_symbol' => config('v2board.currency_symbol', '¥'),
+                'register_limit_by_ip_enable' => config('v2board.register_limit_by_ip_enable', 0),
+                'register_limit_count' => config('v2board.register_limit_count', 3),
+                'register_limit_expire' => config('v2board.register_limit_expire', 60)
             ],
             'subscribe' => [
                 'plan_change_enable' => (int)config('v2board.plan_change_enable', 1),

+ 6 - 2
app/Http/Controllers/Passport/AuthController.php

@@ -22,7 +22,7 @@ class AuthController extends Controller
     {
         if ((int)config('v2board.register_limit_by_ip_enable', 0)) {
             $registerCountByIP = Cache::get(CacheKey::get('REGISTER_IP_RATE_LIMIT', $request->ip())) ?? 0;
-            if ((int)$registerCountByIP >= 3) {
+            if ((int)$registerCountByIP >= (int)config('v2board.register_limit_count', 3)) {
                 abort(500, __('Register frequently, please try again after 1 hour'));
             }
         }
@@ -119,7 +119,11 @@ class AuthController extends Controller
         $user->save();
 
         if ((int)config('v2board.register_limit_by_ip_enable', 0)) {
-            Cache::put(CacheKey::get('REGISTER_IP_RATE_LIMIT', $request->ip()), (int)$registerCountByIP + 1, 3600);
+            Cache::put(
+                CacheKey::get('REGISTER_IP_RATE_LIMIT', $request->ip()),
+                (int)$registerCountByIP + 1,
+                (int)config('v2board.register_limit_expire', 60) * 60
+            );
         }
         return response()->json([
             'data' => $data

+ 3 - 0
app/Http/Requests/Admin/ConfigSave.php

@@ -48,6 +48,9 @@ class ConfigSave extends FormRequest
             'tos_url' => 'nullable|url',
             'currency' => '',
             'currency_symbol' => '',
+            'register_limit_by_ip_enable' => 'in:0,1',
+            'register_limit_count' => 'integer',
+            'register_limit_expire' => 'integer',
             // subscribe
             'plan_change_enable' => 'in:0,1',
             'reset_traffic_method' => 'in:0,1,2',

+ 1 - 1
config/app.php

@@ -237,5 +237,5 @@ return [
     | The only modification by laravel config
     |
     */
-    'version' => '1.5.6.1646831826955'
+    'version' => '1.5.6.1648559460502'
 ];

File diff suppressed because it is too large
+ 0 - 0
public/assets/admin/umi.js


Some files were not shown because too many files changed in this diff