需求背景
用户打开平台主页或者某店铺(子域名),微信扫码登录后,能够成功前往目标店铺,如果初次登录,则根据当前访问地站点分配店铺。
技术难点
- 店铺域名是通过后台分配填写的,动态化;
- 微信授权登录的API回调地址,只能填写主站域名,无法自我控制跳转;
- 所有本地存储方案都无法绕过跨站传输(子域名);
方案实现
- 增加Authentic页面作为授权登录后的回调页面;
- 在新增的页面中进行调取后端真实的用户登录和查询过程;
- 前端获取接口返回的真实店铺地址后,拼接uid参数返回到home页;
- home页查询用户信息,并设置登录状态,移除地址栏参数;
评价
优点:
- 牺牲比较小的前端用户体验,满足了产品需求;
- 后端调整较小,不需要设置复杂的前端存储方案;
缺点:
- 有一定的安全风险,原因是原本单次使用的unicode被替换成了uid;
- 增加了额外的开发页面和接口功能,以及一部分用户体验;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。