前端登录逻辑
-
路由配置:
/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 响应。