问题背景: - 平台审核结论:页面未完整浏览、体验详情时即要求授权登录,属于不合规 - 用户应能先浏览页面内容,仅在执行操作(抽奖/兑换/购买)时才引导登录 根因分析: 1. api/appUser.js 中活动浏览类 API(getActivityDetail 等)使用 authRequest, 虽然后端接口是公开的,但同页面的 getGamePasses 等需认证接口返回 401 触发全局登录弹窗 2. getProductDetail 使用 authRequest 调用认证接口,未登录直接 401 3. 全局 401 拦截器不区分浏览请求和操作请求 修改内容: 1. api/appUser.js: 6 个浏览类 API 函数从 authRequest 改为 request - getActivityDetail, getActivityIssues, getActivityIssueRewards - getIssueDrawLogs, getMatchingCardTypes, getProductDetail 这些接口在后端均为公开路由,不需要携带 token 2. 活动页面 onLoad 中条件调用认证接口: - wuxianshang/index.vue: fetchPasses() 仅在已登录时调用 - yifanshang/index.vue: fetchPasses() 仅在已登录时调用 - duiduipeng/index.vue: fetchGamePasses() 仅在已登录时调用 次数卡(game passes)接口需要认证,未登录时跳过即可, 不影响页面浏览体验 3. utils/request.js: request() 函数增加 suppressAuthModal 参数 支持调用方按需静默 401 弹窗,作为安全兜底机制 验证场景: - 未登录 → 打开无限赏/一番赏/对对碰/商品详情 → 正常显示,无登录弹窗 - 未登录 → 点击抽奖/兑换按钮 → 弹出登录提示(符合平台规范) - 已登录 → 所有功能正常,次数卡信息正常加载
Description
No description provided
Languages
Vue
72.3%
JavaScript
23.9%
SCSS
3.8%