前段时间开发中的一款产品,有小程序和app:小程序直接微信登录,app使用手机号+验证码注册,手机号+验证码/密码登录。
用户使用其中一套账号密码即可正常使用,不强制要求完善另一套账号。为避免同一用户小程序是一个账号,app是另一个账号,就有了两套账号体系相互打通(绑定)的需求。
下边梳理下注册登录及相互绑定的流程。
小程序注册登录
从微信进入小程序,如果数据库中没有这个微信用户,即注册为新用户,然后自动登录。如果已经有这个用户了,也自动登录。
这里为什么是UnionID而不是openid。
openid同一用户同一应用唯一,unionid同一用户同一开放平台所有应用唯一。
如果使用openid,当有多个应用,比如多个小程序,或者小程序和app的微信授权登录,同一个微信用户会有多个openid,如何将其对应到同一个账户就很复杂了。
App注册登录
App注册只设计了手机号+验证码的方式。如果没有这个手机号用户,注册为新用户并登录。如果已经有这个手机号用户,自动登录。
比最基本的注册登录多了一个账号是否禁用的判断。
起初是没有这一层判断的,发放新用户红包(可无条件提现)的时候出现了问题:已经被禁止登陆的手机号,又重新注册了新账号。
所以,列入黑名单的账号,不仅要在登陆环节堵住,在注册环节也得堵住。
微信小程序里,绑定/换绑手机号
换绑过程,需要原绑定手机号+验证码验证后才能进入解绑流程,防止他人恶意绑定。这一步是否有必要,要根据产品的性质而定,如果是金融类产品,牵扯到钱,一定要有。用户更换绑定的手机号,很可能原手机号已经无法接收验证码。所以,如果没有其他的解绑途径,最好这一步是可以跳过的。
app手机登录,绑定微信号
以上是注册登录及绑定账号的流程,其中会涉及到很多细节,理好了再补充。