头图

需求背景

用户打开平台主页或者某店铺(子域名),微信扫码登录后,能够成功前往目标店铺,如果初次登录,则根据当前访问地站点分配店铺。

技术难点

  1. 店铺域名是通过后台分配填写的,动态化;
  2. 微信授权登录的API回调地址,只能填写主站域名,无法自我控制跳转;
  3. 所有本地存储方案都无法绕过跨站传输(子域名);

方案实现

  1. 增加Authentic页面作为授权登录后的回调页面;
  2. 在新增的页面中进行调取后端真实的用户登录和查询过程;
  3. 前端获取接口返回的真实店铺地址后,拼接uid参数返回到home页;
  4. home页查询用户信息,并设置登录状态,移除地址栏参数;

评价

优点:

  1. 牺牲比较小的前端用户体验,满足了产品需求;
  2. 后端调整较小,不需要设置复杂的前端存储方案;

缺点:

  1. 有一定的安全风险,原因是原本单次使用的unicode被替换成了uid;
  2. 增加了额外的开发页面和接口功能,以及一部分用户体验;

何弃疗
118 声望7 粉丝

前端路上摸爬滚打;野路子前端debug