# 用户账号绑定

同一用户在多端应用的不同登录方式对应不同的账号,如微信、手机号和苹果账号等。通过账号绑定,

  • 开发者可以识别到不同账号对应相同的用户。
  • 开发者可以整合不同账号体系的能力,如手机号登录也可以使用云开发。

# 绑定时序

sequenceDiagram
	participant client as 多端应用
	participant wx server as 多端服务器

	client->>client:wx.xxxLogin登录账号A,获取 code
	
	client->>client:开发者自定义绑定入口,用户触发绑定账号B
	client->>wx server:wx.miniapp.bindXXX,请求绑定账号B
	
	alt 
        note right of client: 账号B不存在
		wx server->>wx server:绑定账号A和账号B
		wx server->>client:绑定成功

	else 
        note right of client: 账号B存在
		wx server->>client:绑定失败
	end

时序说明

  1. 用户登录账号A(如微信),然后通过开发者自定义的绑定入口,触发调用 wx.miniapp.bindXXX 绑定账号B(如手机号),后续账号A和账号B就可以关联到同一用户。wx.miniapp.bindXXX 表示不同的账号绑定方式,wx.miniapp.bindPhonewx.miniapp.bindWeixinwx.miniapp.bindApple等。

  2. 开发者可以调用 wx.miniapp.checkBindInfo 检查当前用户是否已经绑定某种账号,没有再提供绑定入口。

  3. 如果账号B存在,说明账号B已经绑定、或者账号A和账号B已经对应两个不同用户,则绑定操作失败。开发者可以根据自身业务引导用户进行如下三种操作之一:

  • 放弃绑定账号B。

  • 先调用服务端API unbindXXX 解绑已有账号B,再进行绑定。unbindXXX 表示不同的账号解绑方式,unbindPhoneunbindWeixinunbindApple等。

  • 先调用服务端API unregisterUser 注销已有账号B,再进行绑定。

# 实现示例

快速实现绑定手机号