- 将获取 STS Token 的接口地址由 paopao-api 改为 guilixu-api - 更新图片上传接口地址为新的 guilixu-api 域名 - 修改用户推广页面中邀请码链接和二维码接口的域名 - 更改注册页微信登录接口请求的域名为 guilixu-api
2.2 KiB
2.2 KiB
2026-06-17
微信小程序"登录后才能看商品"过审方案
背景
客户要求登录才能看到商品,但微信审核禁止"一进入就强制登录"。实施游客态 + 行为节点拦截。
改动落点(6 个文件)
- src/utils/auth.ts — 新增
getUserMode()/isGuest(),导出UserMode类型 - src/utils/login-guard.ts — 新增
requireLogin({ action, redirect, silent })拦截器- 非阻塞:默认用
Taro.showModal二次确认,不要直接 navigateTo 注册页 action类型枚举:addToCart | buyNow | checkout | favorite | receiveCoupon | viewOrder | payOrder | submitComment- 内置每个 action 的默认 redirect 文案
- 非阻塞:默认用
- src/components/common/Price/index.tsx — 新增
loginMask模式 +maskText自定义- 游客态 +
loginMask=true→ 显示"登录后查看价格" - 登录态 → 走原逻辑,所有 Price 调用点零改动兼容
- 游客态 +
- src/components/common/ProductCard/index.tsx — 给
<Price>加loginMask,划线价游客态隐藏 - src/pages/shop/product-detail.tsx — 主价签
loginMask;划线价/会员价游客态隐藏toggleFavorite/handleAddCart/handleBuyNow改用requireLogin替换原来的 showToast + setTimeout navigateTo
- src/pages/shop/cart.tsx — 去掉"未登录直接挡"
- 游客态:显示空购物车 + 推荐位 + "去登录后查看购物车"按钮
- 推荐位价格统一显示"登录后查看价格"
- 顺手修了
setRecommendGoods未声明的潜在运行 bug
关键经验
- 绝不在 useLaunch / onLoad / tabBar 切换时调登录(审核必毙)
- 价格脱敏是过审最稳方案,比"行为拦截+保留价格"风险低
- 拦截用
Taro.showModal而非navigateTo,避免被判"拒绝服务" - 项目里
Price公共组件是天然改造点,加一个loginMaskprop 一处改全场生效
还没改的(可后续)
- checkout.tsx 已是登录后路径,但里面的价格 / 余额展示可以加
loginMask兜底 - 各
index.tsx页面(首页/分类/搜索)的非 ProductCard 价格展示位(如果有) - 优惠券中心
receiveCoupon行为点 - SkuSelector 内部价格