fix(web): 修复微信回调页token时序bug - 先存token再取用户信息
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m2s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 37s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m15s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m46s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m33s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 53s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 28s
AI Code Review / AI Code Review (pull_request) Successful in 3m8s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m9s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 10m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 47m10s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1316h54m5s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1316h54m7s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1316h54m11s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1316h54m13s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1316h54m38s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1316h54m40s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1316h56m55s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1316h54m42s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1316h54m44s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1316h56m57s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1316h56m59s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1317h26m30s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1317h26m36s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1317h27m6s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m2s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 37s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m15s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m46s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m33s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 53s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 28s
AI Code Review / AI Code Review (pull_request) Successful in 3m8s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m9s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 10m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 47m10s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1316h54m5s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1316h54m7s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1316h54m11s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1316h54m13s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1316h54m38s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1316h54m40s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1316h56m55s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1316h54m42s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1316h54m44s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1316h56m57s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1316h56m59s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1317h26m30s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1317h26m36s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1317h27m6s
WechatCallback页面存在与#734相同的时序问题: getCurrentUser()在setAuth()之前执行,导致请求拦截器 从localStorage取不到token,返回401后触发登出逻辑跳回登录页。 修复方式与#734一致:先手动存token到localStorage, 再调用getCurrentUser(),最后setAuth同步store状态。 关联: #558, #734
This commit is contained in:
@@ -39,7 +39,13 @@ const WechatCallback: React.FC = () => {
|
||||
|
||||
const result = await wechatCallback(code, state)
|
||||
|
||||
// 获取用户信息
|
||||
// 先把 token 存到 localStorage,让请求拦截器能拿到(getCurrentUser 需要带 token)
|
||||
localStorage.setItem("access_token", result.access_token)
|
||||
if (result.refresh_token) {
|
||||
localStorage.setItem("refresh_token", result.refresh_token)
|
||||
}
|
||||
|
||||
// 获取用户信息(这时候请求拦截器能拿到 token 了)
|
||||
const userData = await getCurrentUser()
|
||||
const user: User = normalizeUser(userData)
|
||||
setAuth(user, result.access_token, result.refresh_token)
|
||||
|
||||
Reference in New Issue
Block a user