From 77b983759956322fcd2259de4f1094217535dcdb Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 13 二月 2025 17:59:08 +0800
Subject: [PATCH] 登录问题优化

---
 app/service/ragflow.py          |    2 +-
 app/config/env_conf/config.yaml |    4 ++--
 app/service/difyService.py      |    2 +-
 app/api/user.py                 |    2 ++
 app/api/auth.py                 |    6 +++---
 5 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/app/api/auth.py b/app/api/auth.py
index c17b48b..abb3474 100644
--- a/app/api/auth.py
+++ b/app/api/auth.py
@@ -125,16 +125,14 @@
             continue
         try:
             name = login_data.username
-            email = ""
             app_password = login_data.password
             user_app = await UserAppDao(db).get_data_by_id(user.id, app["id"])
             if user_app:
                 name  = user_app.username
-                email  = user_app.email
                 app_password = user_app.decrypted_password(user_app.password)
             else:
                 await update_user_info(db, user.id)
-            token = await service.login(name, app_password,email=email)
+            token = await service.login(name, app_password)
             token_dict[app["id"]] = token
         except Exception as e:
             return Response(code=500, msg=f"Failed to login with {app['id']}: {str(e)}")
@@ -172,6 +170,8 @@
 
 @router.post("/v2/register", response_model=Response)
 async def register_v2(user: UserCreate, db=Depends(get_db)):
+    if "@" in user.username:
+        return Response(code=400, msg="Username cannot contain @")
     password = await password_rsa(user.password)
     if not is_valid_password(password):
         return Response(code=400, msg="The password must be at least 8 and contain both numbers and letters")
diff --git a/app/api/user.py b/app/api/user.py
index 57171ff..52d1e0f 100644
--- a/app/api/user.py
+++ b/app/api/user.py
@@ -23,6 +23,8 @@
 async def add_user(user: UserInfo, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
     if not user.userName:
         return Response(code=400, msg="The userName cannot be empty!")
+    if "@" in user.username:
+        return Response(code=400, msg="Username cannot contain @")
     if user.pwd:
         if not is_valid_password(user.pwd):
             return Response(code=400, msg="The password must be at least 8 and contain both numbers and letters")
diff --git a/app/config/env_conf/config.yaml b/app/config/env_conf/config.yaml
index 14a2719..14c5ce7 100644
--- a/app/config/env_conf/config.yaml
+++ b/app/config/env_conf/config.yaml
@@ -2,7 +2,7 @@
 sgb_base_url: http://192.168.20.119:13001
 sgb_websocket_url: ws://192.168.20.119:13001
 fwr_base_url: http://192.168.20.119:11080
-database_url: mysql+pymysql://root:rag_gateway@192.168.20.117:23306/rag_gateway
+database_url: mysql+pymysql://root:rag_gateway@192.168.20.116:23306/rag_gateway
 sgb_db_url: mysql+pymysql://root:1234@192.168.20.119:13306/bisheng
 fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:15455/rag_flow
 PUBLIC_KEY: |
@@ -17,7 +17,7 @@
 basic_paper_url: http://192.168.20.231:8000
 dify_base_url: http://192.168.20.116
 dify_api_token: app-YmOAMDsPpDDlqryMHnc9TzTO
-postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.117:5432/kong
+postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.116:5432/kong
 dify_workflow_clean: app-OpF0drPu0XcgqcekQpT4FA8a
 dify_workflow_report: app-0MAkdFWqh9zxwmU69O0BFU1s
 dify_database_url: postgresql+psycopg2://postgres:difyai123456@192.168.20.116:15432/dify
diff --git a/app/service/difyService.py b/app/service/difyService.py
index 21117e8..595ca4c 100644
--- a/app/service/difyService.py
+++ b/app/service/difyService.py
@@ -74,7 +74,7 @@
 
     async def login(self, username: str, password: str, remember_me=True, invite_token:str="", email="") -> str:
         # password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
-        data = {"email":email if email else f"{username}@basic.com", "password": password, "remember_me": remember_me, "invite_token": invite_token,
+        data = {"email":username if "@" in username else f"{username}@basic.com", "password": password, "remember_me": remember_me, "invite_token": invite_token,
          "language": "zh-Hans"}
 
         async with httpx.AsyncClient() as client:
diff --git a/app/service/ragflow.py b/app/service/ragflow.py
index 08cc26f..f0e6fd8 100644
--- a/app/service/ragflow.py
+++ b/app/service/ragflow.py
@@ -54,7 +54,7 @@
             response = await client.post(
                 f"{self.base_url}/v1/user/login",
                 headers={'Content-Type': 'application/json'},
-                json={"email": email if email else f"{username}@example.com", "password": password}
+                json={"email": username if "@" in username else f"{username}@example.com", "password": password}
             )
             if response.status_code != 200:
                 raise Exception(f"Ragflow login failed: {response.text}")

--
Gitblit v1.8.0