理论上,开发者后端可以通过 openid
识别用户,也能通过unionid
关联同主体的多个小程序、公众号、app,实现数据互通,从而为每一个用户创建独一无二的uid
(本业务自定义的用户 id),在「微信生态」中建立成熟用户体系。
然而,对于复杂的电商跨端应用,比如pc
、h5
、小程序
,不同渠道注册的uid
是不同的,用户登录后难以对各个渠道的交易、促销、收藏等数据进行整合。因此,要实现跨端的用户体系数据互通,就需要提供一个唯一的用户标识——手机号。这便是本文重点讲述的「用户登录」,即「游客态」转变成「会员态」的过程。
2. 「用户登录」流程
============
上一篇文章《小程序静默登录方案设计》中提过,当新用户第一次进入小程序时,便会触发「静默登录」,这个过程对用户是无感知的。但此时开发者服务端已经为该用户定义了uid
,并下发auth-token
给小程序端,对于一些需要鉴权的请求,服务端可以根据请求携带的auth-token
精确识别是哪个用户发起的行为。
然而,类似加购
、下单
、领券
等用户行为,涉及到跨端数据的整合,在执行用户操作之前,会判断用户是否登录,如若用户未登录,则跳转登录页面,整个流程如下所示:
登录流程图
比如在「用户中心」页面点击「我的订单」,由于此时用户未登录,跳转到登录页面,可以选择以下两种登录方式:
-
选择 「微信授权登录」,弹出授权手机号信息弹窗,点击「允许」,此时用户登录成功。
-
选择 「手机快捷登录」,输入手机号,使用 「验证码」 或者 「密码」 进行登录,登录成功跳转回到「用户中心」页面。
上述步骤已经完成了「用户登录」,用户可以正常的执行加购、领券、下单等操作。为了提升用户体验,需要对 「会员信息」 进行维护 ,比如昵称、头像、性别、生日等信息,最简单的方法是 获取「微信授权用户信息」。触发时机分为以下两种:
-
用户第一次选择 「微信授权登录」 成功后跳转授权用户信息页面,点击 「授权用户信息」,弹出授权用户信息弹窗。点击「允许」,跳转回「用户中心」页面。
-
在「用户中心」页面点击头像昵称区域,弹出授权用户信息弹窗,点击「允许」,更新「会员信息」并跳转用户信息编辑页面。
3. 「用户登录」方案设计
==============
3.1 架构
用户登录架构
「用户登录」方案架构如上图所示,