返回提交历史
Modified
g4f/api/__init__.py
+9
-7
XFEstudio/gpt4free
Log invalid requests
3fc69e0a
代码差异
1 个文件
+9
-7
@@ -241,6 +241,11 @@ class Api:
241
241
user_g4f_api_key = await self.security(request)
242
242
if hasattr(user_g4f_api_key, "credentials"):
243
243
user_g4f_api_key = user_g4f_api_key.credentials
244
if AppConfig.demo and user is None:
245
ip = request.headers.get("X-Forwarded-For", "")[:4].strip(":.")
246
country = request.headers.get("Cf-Ipcountry", "")
247
user = request.headers.get("x-user", ip)
248
user = f"{country}:{user}" if country else user
244
249
if AppConfig.g4f_api_key is None or not user_g4f_api_key or not secrets.compare_digest(AppConfig.g4f_api_key, user_g4f_api_key):
245
250
if has_crypto and user_g4f_api_key:
246
251
try:
@@ -249,10 +254,12 @@ class Api:
249
254
try:
250
255
data = json.loads(decrypt_data(session_key, user_g4f_api_key))
251
256
expires = int(decrypt_data(private_key, data["data"])) + 86400
252
user = data.get("user", user)
253
if not user:
257
if not data.get("user"):
254
258
raise ValueError("User not found")
259
user = data.get("user")
255
260
except:
261
debug.log(f"Invalid G4F API key for user: '{user}'")
262
debug.log(await request.json())
256
263
return ErrorResponse.from_message(f"Invalid G4F API key", HTTP_401_UNAUTHORIZED)
257
264
expires = int(expires) - int(time.time())
258
265
hours, remainder = divmod(expires, 3600)
@@ -278,11 +285,6 @@ class Api:
278
285
user = await self.get_username(request)
279
286
except HTTPException as e:
280
287
return ErrorResponse.from_message(e.detail, e.status_code, e.headers)
281
if user is None:
282
ip = request.headers.get("X-Forwarded-For", "")[:4].strip(":.")
283
country = request.headers.get("Cf-Ipcountry", "")
284
user = request.headers.get("x-user", ip)
285
user = f"{country}:{user}" if country else user
286
288
request = update_headers(request, user)
287
289
response = await call_next(request)
288
290
return response