登录和注册流程的核心通过支付宝的身份信息完成系统账号的绑定,分为"已有账号"和"新用户注册"两条分支。
1. 用户进入支付宝小程序
用户打开目标支付宝小程序,开始登录/注册流程
2. 获取支付宝授权信息
1) 前端(小程序页面)获取支付宝的auth_code(授权码),并把这个auth_code传给后端接口;
2)后端用auth_code向支付宝请求获取用户openId(支付宝用户唯一标识),同时获取支付宝用户信息、记录登录行为。
3. 关键判断:用户是否已经在系统注册
后端通过openId检查:该支付宝用户是否已经在当前系统注册过账号
分支1:已注册---直接登录
如果是已经注册用户,后端生成系统登录token,用户直接登录小程序。
分支2:未注册---完成新用户注册(需人脸核验)
如果是新用户,走注册流程(需要支付宝人脸核验身份)
1). 后端生成一个临时凭证uuid;
2)前端识别uuid后,跳转到注册页,要求用户填写身份信息(身份证、姓名)、手机号+验证码;
3)后端拿着用户填写的身份信息,向支付宝发起人脸核验请求;
4)支付宝返回certify_id(核身凭证),后端再用certify_id向支付宝获取核验服务的地址(url);
5)前端打开这个url,引导用户完成人脸核验,验证完成后调用后端注册接口(传入certify_id);
6)后端用certify_id向支付宝校验人脸核验的结果:如果核验通过,把certify_id绑定的身份信息(和支付宝openId)关联,完成用户注册;如果核验失败,拒绝注册。
总结: 用支付宝授权码换取用户标识,已注册直接登录,没有注册的话,填写身份信息+人脸核验,通过后绑定支付宝标识完成注册。