fix(cors): 放行本机任意调试端口,并修正两个小程序的服务端地址
小程序登录不上,是两层问题叠在一起。
一、服务端地址指向了另一台机器
rencaika/config/api.uts 与 rencaika_merchant/config/api.uts 里 developmentBaseUrl 都还是
http://192.168.110.26:8080,而本机 WLAN 地址已经变成 192.168.110.15(文件注释里其实已经
写明"原值 192.168.110.26 不是本机")。请求因此发到一台不存在的机器上,表现为"登录不上"。
二、CORS 白名单漏了随机端口
微信开发者工具这个请求的来源是 http://127.0.0.1:42665,而白名单里只有写死的
5273/7893/7894 等端口。开发者工具每次启动都换端口,写死端口必然漏;预检实测返回 403
且响应里没有 Access-Control-Allow-Origin。
改动:
- ApiCorsConfig 改为「精确白名单 + origin 通配」两层:真实域名继续走
app.cors.allowed-origins 精确匹配;本机调试来源用新增的
app.cors.allowed-origin-patterns(http://localhost:[*] 与 http://127.0.0.1:[*])
覆盖任意端口,不再逐个追端口。
- 通配只覆盖 localhost / 127.0.0.1,不对公网来源开口子(新增用例断言外部域名仍被拒)。
- 两个 api.uts 的 developmentBaseUrl 改为当前局域网地址,并把"换网后要跟着改"写清楚。
新增 LoosenedDevelopmentCorsTests 4 项(随机端口放行、精确白名单仍生效、公网来源仍拒绝),
连同既有 ApiCorsConfigTests 共 10 项通过。