本周来上班刚登上小程序后台就看到了微信官方发布的「小程序内用户帐号登录规范调整和优化建议」(链接:https://developers.weixin.qq.com/community/operate/doc/000640bb8441b82900e89f48351401),很多小程序开发/维护者表示???!!!~~~
现实:
我现在正在维护的小程序(商品售卖类)属于第一种情形,目前小程序内关于授权登录的做法是:对于新用户/已删除授权的老用户,进入小程序后,将首先跳转至登录授权页面,如果用户未允许授权,那么将无法继续使用小程序__。__该做法确实:1.比较霸道;2.对少数想先浏览商品再决定是否进行购买的用户来说,有点使他们无法接受,如果直接离开,将导致我们丢失一部分用户。
痛点:
目前这种情况下,如果按照「规范调整和优化建议」里的“建议”去做修改的话,成本将会不小,因为前后端经过几番改造后,目前几乎所有的接口都需要用户验证,所以如果修改成先让用户体验再让用户进行登录的话,一来将使得我们过去几个月所做的努力白费,二来也将大规模调整我们的业务逻辑,成本太高,而且不稳定性也将增加,这对我们开发者来讲特别不划算。
个人期望折中的方法:
这两天思考了一下,我们再进行接口升级改造时,旧版本的用于获取首页商品列表不需要验证的接口并未废弃仍可使用,鉴于此,如果我继续保持之前的未授权用户进入小程序即跳转至授权登录页面要求授权,但在该页面增加「暂不登录」的选项,此时:
1. 用户若不介意登录授权,那可以直接点击「授权登录」进行授权,授权后将前往首页,此时首页将采用新版的需要验证的接口
2.对于介意的用户来说,点击「暂不登录」,将前往首页,此时使用旧接口进行体验以及商品浏览,当该用户有意向购买时,比如点击了购物车的购买按钮,再行授权登录
期望回答:
这种比较折中的方法,将能在保留我们目前业务逻辑的情况下,使得开发者尽量少的对代码进行改动,希望官方同学能够回答下:对于这种修改,仍然会受到“代码审核环节进行规则提示和修改要求反馈”的惩罚🐎?真心求问啊!
2019/08/08 更新:
我们公司小程序的登录授权流程已经修改,其实就是微信提供的那套小程序登录,在这里统一说一下:
小程序登录/注册情形:我们的登录于注册不依赖于用户的个人信息以及UnionId,新用户在我们这里注册后会根据用户的OpenId生成一个userId然后根据这个userId生成对应的session进行后续业务接口的验证,所以如果你们依赖于UnionId的话,请慎重考虑~~~
修改之前:新用户进入小程序后会立即跳转至「登录授权」页面,用户允许授权后会调用登录接口(v1.0.0)完成注册,生成用户userId以及cookie返回,前台将cookie进行保存以供后续业务接口使用
修改之后:将用户注册于授权保存用户信息分离开来,用户进入小程序后会首先调用wx.login()获取code,将code传给后台以获取OpenId,后台拿到OpenId后直接进行查询:未查询到则为新用户,注册生成新的UserId,查询到则为老用户,得到之前已经生成的UserId,随后将cookie返回,前台保存;用户浏览后进行购买操作或者进入「我的」页面时,才会提示授权,允许授权后才会保存用户信息以及获取其UnionId