|
@@ -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,
|
|
|
) # 付费验证码限制器实例对象
|