前端登錄邏輯
-
路由配置:
/login
路由指向@/pages/login
組件。- 登錄表單使用 Ant Design 的
Form
, Input, 和 Button 組件。
-
登錄表單處理:
- 使用 useLogin鉤子來處理登錄請求。
- 密碼通過 RSA 加密后再發送到服務器。
- 成功登錄后導航至
/knowledge
頁面。
-
狀態管理:
- 使用
localStorage
存儲授權信息、令牌和用戶信息。 - 提供了重定向到登錄頁的方法 redirectToLogin。
- 使用
-
第三方登錄:
- 支持通過指定渠道(如 GitHub, Discord)進行登錄。
后端登錄邏輯
-
登錄接口:
- 定義在
backend/api/apps/user_app.py
中的 login 函數。 - 接收 POST 請求,驗證用戶的郵箱和密碼。
- 定義在
-
用戶驗證:
- 查詢數據庫以獲取與提供的郵箱匹配的用戶。
- 如果找不到用戶,則返回錯誤消息。
- 密碼通過 decrypt函數解密,并與數據庫中的哈希密碼比較。
-
安全性和響應:
- 使用 Flask-Login 進行會話管理。
- 登錄成功后設置會話信息,并返回相應的 JSON 響應。