Эх сурвалжийг харах

限制器新增验证用户口令

dzr 1 жил өмнө
parent
commit
810fc5d4df
1 өөрчлөгдсөн 9 нэмэгдсэн , 2 устгасан
  1. 9 2
      services/limiter.py

+ 9 - 2
services/limiter.py

@@ -12,7 +12,6 @@ import inspect
 from fastapi import FastAPI
 from slowapi import Limiter, _rate_limit_exceeded_handler
 from slowapi.errors import RateLimitExceeded
-from slowapi.util import get_remote_address
 
 import db.redisdb as redis
 import setting
@@ -129,7 +128,15 @@ class PayCaptchaLimiter(Limiter):
     _Limiter__evaluate_limits = __evaluate_limits
 
 
+def get_usage_user_key(request):
+    if "X_USER_TOKEN" in request.headers:
+        key = request.headers["X_USER_TOKEN"]
+    else:
+        key = "PyCaptcha"
+    return key
+
+
 limiter = PayCaptchaLimiter(
-    key_func=get_remote_address,
+    key_func=get_usage_user_key,
     storage_uri=setting.LIMITER_STORAGE_URI,
 )  # 付费验证码限制器实例对象