feat(web): #558 微信登录体验优化 #676

Merged
auto-approve-bot merged 1 commits from feat/558-wechat-login-polish into develop 2026-07-21 11:59:06 +08:00
Owner

改动

  • 回调页增加state防CSRF校验
  • 登录成功后跳回登录前页面(login_redirect)
  • 新增useWechatCallback hook统一微信登录逻辑
  • 绑定成功后更新authStore用户信息
  • 移除重复的token存储逻辑(setAuth已处理)
  • 邮箱密码登录也改为跳回登录前页面
## 改动 - 回调页增加state防CSRF校验 - 登录成功后跳回登录前页面(login_redirect) - 新增useWechatCallback hook统一微信登录逻辑 - 绑定成功后更新authStore用户信息 - 移除重复的token存储逻辑(setAuth已处理) - 邮箱密码登录也改为跳回登录前页面
xiaoxia added 1 commit 2026-07-21 11:38:53 +08:00
feat(web): #558 微信登录体验优化 - state校验/登录跳转/useWechatCallback hook
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 2m35s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 7s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 13m1s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 12m56s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 19m1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 18m26s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 25s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 49m38s
fb73a69ecd
- 回调页增加state防CSRF校验
- 登录成功后跳回登录前页面(login_redirect)
- 新增useWechatCallback hook统一微信登录逻辑
- 绑定成功后更新authStore用户信息
- 移除重复的token存储逻辑(setAuth已处理)
Collaborator

代码审查结果 - PR #676

⚠️ 问题(2个需要修改)

  1. apps/web/src/hooks/useAuth.ts 第30-56行:新增的 useWechatCallback Hook 定义了完整的微信回调处理逻辑(包括 state 校验、API 调用、用户信息获取),但在 apps/web/src/pages/auth/WechatCallback.tsx 中并未引用使用,而是重新实现了一遍相同逻辑。这导致了严重的代码重复和逻辑割裂,未来修改逻辑时容易遗漏其中一处。
  2. apps/web/src/pages/auth/WechatCallback.tsx 第52-54行、71-73行:重定向逻辑(获取 login_redirect、删除 localStorage、跳转)在 useLogin Hook 和 WechatCallback 组件中重复出现了 3 次,违反 DRY 原则,建议封装为通用的 useLoginRedirect Hook 或工具函数。

💡 建议(1个可选)

  1. apps/web/src/pages/auth/WechatCallback.tsx 第57行refresh_token 处理不一致。在 useAuth.ts 中使用了 data.refresh_token ?? null 进行显式空值合并,而此处直接传递 result.refresh_token。若 setAuth 内部对 nullundefined 有不同判断逻辑(如严格相等 !== null),可能会导致行为差异。

格式检查通过 | 逻辑审查需修改 | ⚠️ 建议关注性能


🤖 由 AI 代码审查机器人自动生成 | 2026-07-21 11:41:22 | 模型:

## 代码审查结果 - PR #676 ### ⚠️ 问题(2个需要修改) 1. **apps/web/src/hooks/useAuth.ts 第30-56行**:新增的 `useWechatCallback` Hook 定义了完整的微信回调处理逻辑(包括 state 校验、API 调用、用户信息获取),但在 `apps/web/src/pages/auth/WechatCallback.tsx` 中并未引用使用,而是重新实现了一遍相同逻辑。这导致了严重的代码重复和逻辑割裂,未来修改逻辑时容易遗漏其中一处。 2. **apps/web/src/pages/auth/WechatCallback.tsx 第52-54行、71-73行**:重定向逻辑(获取 `login_redirect`、删除 localStorage、跳转)在 `useLogin` Hook 和 `WechatCallback` 组件中重复出现了 3 次,违反 DRY 原则,建议封装为通用的 `useLoginRedirect` Hook 或工具函数。 ### 💡 建议(1个可选) 1. **apps/web/src/pages/auth/WechatCallback.tsx 第57行**:`refresh_token` 处理不一致。在 `useAuth.ts` 中使用了 `data.refresh_token ?? null` 进行显式空值合并,而此处直接传递 `result.refresh_token`。若 `setAuth` 内部对 `null` 和 `undefined` 有不同判断逻辑(如严格相等 `!== null`),可能会导致行为差异。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-21 11:41:22 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

项目 详情
PR号 #676
预览链接 https://pr-676.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #676 | | 预览链接 | [https://pr-676.preview.xiaoxiajianji.com](https://pr-676.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot approved these changes 2026-07-21 11:57:55 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-21 11:57:56 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit d9f9bce1bd into develop 2026-07-21 11:59:06 +08:00
auto-approve-bot deleted branch feat/558-wechat-login-polish 2026-07-21 11:59:06 +08:00

🗑️ 预览环境已清理

PR #676 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #676 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.