refactor(user): 禁用 loginByOpenId 静默登录并优化登录状态控制
- 移除 UserContext 和 useUser 中的 loginByOpenId 调用及相关降级逻辑 - 无本地 token 时保持未登录状态,不再自动触发静默登录 - 清理无用导入 TenantId 和 loginByOpenId - 订单列表页增加登录校验,未登录用户跳转登录页并阻止渲染订单 - 商城首页价格改为 Price 组件,未登录游客显示登录遮罩,单位仅登录后可见
This commit is contained in:
@@ -90,3 +90,29 @@ adapter `/list` 接口忽略分页,一次返回全部收藏;前端 `listShop
|
||||
2. **`src/api/shop/shopCart/index.ts`**:`updateCartNum` 发 `{id, cartNum}`;`updateCartChecked` 发 `{id, selected}`
|
||||
3. **`src/contexts/CartContext.tsx`**:`refresh()` 读 `item.cartNum` 和 `item.selected`;`addItem()` 发 `cartNum`;`updateQuantity` 调用 `{id, cartNum}`
|
||||
4. **`src/pages/shop/index.tsx`** + **`src/pages/shop/category.tsx`**:`addToCart` 参数 `num` → `cartNum`
|
||||
|
||||
## 禁用 loginByOpenId 静默登录(2026-07-14)
|
||||
|
||||
### 改动
|
||||
- **`src/contexts/UserContext.tsx`**:移除"情况3"静默登录块(`Taro.login` + `loginByOpenId`),无 token 时直接保持未登录状态;清理 `loginByOpenId`、`TenantId` 无用导入
|
||||
- **`src/hooks/useUser.ts`**:移除降级方案中的 `loginByOpenId` 调用,仅从 storage 读取;清理 `loginByOpenId`、`TenantId` 无用导入
|
||||
- `src/api/layout/index.ts` 中 `loginByOpenId` 函数定义保留,仅不再被调用
|
||||
|
||||
## 商城分类页价格登录可见(2026-07-14)
|
||||
|
||||
### 改动
|
||||
- **`src/pages/shop/index.tsx`**:价格显示从手写 `Text` 改为 `Price` 组件 + `loginMask` 属性(与首页一致),游客看到"登录后查看价格";VIP 划线价逻辑保留在 `original` prop 中;单位 `unitName` 仅登录后显示
|
||||
|
||||
## 订单列表页未登录可查看订单 Bug 修复(2026-07-14)
|
||||
|
||||
### 问题
|
||||
`pages/order/list` 未登录用户也能看到订单数据。
|
||||
|
||||
### 根因
|
||||
页面缺少登录校验——`useEffect` 直接调用 `loadOrders`,未登录时 `user?.userId` 为 `undefined`,后端未按用户过滤直接返回了订单。
|
||||
|
||||
### 修改
|
||||
- **`src/pages/order/list.tsx`**:采用项目标准模式 A(与 commission.tsx 等页面一致):
|
||||
1. 从 `useUser()` 获取 `isLoggedIn`
|
||||
2. `useEffect` 中加 `if (!isLoggedIn)` 守卫 → `Taro.navigateTo('/passport/login')` + return
|
||||
3. render 中 `if (!isLoggedIn) return null`
|
||||
|
||||
Reference in New Issue
Block a user