Spaces:
Runtime error
Runtime error
Commit
·
2697fe1
1
Parent(s):
421b227
new update
Browse files- routers/user.py +3 -3
- services/chat_service.py +2 -2
routers/user.py
CHANGED
@@ -336,7 +336,7 @@ async def auth_google_callback(request: Request):
|
|
336 |
# Set thời gian hết hạn ngắn, ví dụ 1 phút (60 giây)
|
337 |
app_state = get_app_state(request=request)
|
338 |
redis_client = app_state.redis
|
339 |
-
redis_client.set(f"google_auth_code:{auth_code}", user_email, ex=60)
|
340 |
|
341 |
# 3. Chuyển hướng về trang callback của frontend, đính kèm code này
|
342 |
frontend_callback_url = f"{config.FRONTEND_URL}/auth/callback?code={auth_code}"
|
@@ -355,11 +355,11 @@ async def exchange_google_code_for_token(request: Request,response: Response, co
|
|
355 |
redis_client = app_state.redis
|
356 |
# 1. Lấy email từ Redis bằng code và xóa code ngay lập tức
|
357 |
redis_key = f"google_auth_code:{code}"
|
358 |
-
user_email_bytes =
|
359 |
if not user_email_bytes:
|
360 |
raise HTTPException(status_code=400, detail="Invalid or expired authorization code.")
|
361 |
|
362 |
-
redis_client.delete(redis_key) # Dùng một lần
|
363 |
user_email = user_email_bytes.decode()
|
364 |
|
365 |
mongo_db.users.update_one({
|
|
|
336 |
# Set thời gian hết hạn ngắn, ví dụ 1 phút (60 giây)
|
337 |
app_state = get_app_state(request=request)
|
338 |
redis_client = app_state.redis
|
339 |
+
await redis_client.set(f"google_auth_code:{auth_code}", user_email, ex=60)
|
340 |
|
341 |
# 3. Chuyển hướng về trang callback của frontend, đính kèm code này
|
342 |
frontend_callback_url = f"{config.FRONTEND_URL}/auth/callback?code={auth_code}"
|
|
|
355 |
redis_client = app_state.redis
|
356 |
# 1. Lấy email từ Redis bằng code và xóa code ngay lập tức
|
357 |
redis_key = f"google_auth_code:{code}"
|
358 |
+
user_email_bytes = await redis_client.get(redis_key)
|
359 |
if not user_email_bytes:
|
360 |
raise HTTPException(status_code=400, detail="Invalid or expired authorization code.")
|
361 |
|
362 |
+
await redis_client.delete(redis_key) # Dùng một lần
|
363 |
user_email = user_email_bytes.decode()
|
364 |
|
365 |
mongo_db.users.update_one({
|
services/chat_service.py
CHANGED
@@ -174,13 +174,13 @@ async def stream_chat_generator(
|
|
174 |
try:
|
175 |
# --- 1. Xác thực và kiểm tra metadata từ Redis (Tương tự ask_question_service) ---
|
176 |
meta_key = f"conversation_meta:{chat_id}"
|
177 |
-
if not
|
178 |
logger.warning(f"Stream: Metadata cho chat_id {chat_id} không tìm thấy.")
|
179 |
error_payload = {"error": "Chat ID not found or session expired. Please reload."}
|
180 |
yield f"event: error\ndata: {json.dumps(error_payload)}\n\n"
|
181 |
return
|
182 |
|
183 |
-
user_in_redis_bytes = app_state.redis.hget(meta_key, "user_id")
|
184 |
if not user_in_redis_bytes:
|
185 |
logger.error(f"Stream: user_id không có trong metadata của chat {chat_id}.")
|
186 |
error_payload = {"error": "Chat metadata corrupted."}
|
|
|
174 |
try:
|
175 |
# --- 1. Xác thực và kiểm tra metadata từ Redis (Tương tự ask_question_service) ---
|
176 |
meta_key = f"conversation_meta:{chat_id}"
|
177 |
+
if not await app_state.redis.exists(meta_key):
|
178 |
logger.warning(f"Stream: Metadata cho chat_id {chat_id} không tìm thấy.")
|
179 |
error_payload = {"error": "Chat ID not found or session expired. Please reload."}
|
180 |
yield f"event: error\ndata: {json.dumps(error_payload)}\n\n"
|
181 |
return
|
182 |
|
183 |
+
user_in_redis_bytes =await app_state.redis.hget(meta_key, "user_id")
|
184 |
if not user_in_redis_bytes:
|
185 |
logger.error(f"Stream: user_id không có trong metadata của chat {chat_id}.")
|
186 |
error_payload = {"error": "Chat metadata corrupted."}
|