云账号移动端SDK或PC界面,只会和云账号的服务端进行通信,数据也会先存储到云账号的服务端。
ISV服务端的主要工作是:账号数据的同步和关联以及凭证(Token)的申请和校验。
场景 | 介绍 | API介绍 |
ISV的服务端产生的数据同步给云账号服务端 |
1、ISV的数据导入云账号服务端。 2、对账号进行增删改查操作。 |
taobao.open.account.create [点击查看] 存量或者增量数据导入 taobao.open.account.update[点击查看] 更新数据 taobao.open.account.delete[点击查看] 删除数据 taobao.open.account.list[点击查看]查询数据 |
云账号服务端产生的数据同步给ISV的服务端 |
1 注册,找密码都会返回服务端token。在验证TOKEN的时候,会返回账号数据信息,ISV可以根据返回的数据进行存储和关联。 2 在云帐号服务端数据的增加和更新帐号可以通过消息通知(taobao_openaccount_DataSync)通知给ISV的服务端 |
taobao.open.account.token.validate[点击查看]Token验证 订阅taobao_openaccount_DataSync帐号变更 接收消息通知 |
凭证(Token)的申请和校验 |
1 验证(TOKEN):登录,注册,找密码都会返回服务端token,验证token,保证有效性。 2 申请(TOKEN):使用token登录,建立SDK内登录态,进而使用其他依赖登录态的服务,如Open IM和Open Trade等。 |
taobao.open.account.token.validate[点击查看]Token验证
taobao.open.account.token.apply[点击查看]申请Token |
如果ISV存在历史数据,那么在上线前,需要导入存量数据。因为移动端的升级缓慢,所以可能无法保证一次切干净,所以建议只要ISV的服务端有数据产生就调用接口进行同步。
云账号的数据中mobile、email、login_id、oauth_plateform+open_id、isv_account_id必须要证唯一,否则导入数据时会报RECORD_ALREADY_EXIST。
导入数据时,其实并没有强制规定要导入哪些字段,具体要看ISV的使用场景。
场景1 使用云账号移动端SDK或PC界面,完成登录、注册和找密
type status login_pwd login_pwd_encryption 登录标识(email mobile login_id)。如有第三方方登录,需要设置oauth_plateform、open_id这两个字段。open_id对于不同的开放平台取值不同,腾讯为openid、微博为uid、微信为openid。
场景2 只是用生易、Open IM等,不使用云账号移动端SDK或PC界面
因为云账号服务端不产生数据,所以可以只导入isv_account_id,其他看具体业务需要哪些字段
云账号服务端的所有数据都会有一个唯一的Open Account ID。ISV的服务端需要存储Open Account ID进行数据的关联。这里并不建议使用isv_account_id进行关联,因为云账号移动端和PC端注册、找密产生的数据并无此字段。
云账号移动端SDK(或PC端)会先判断用户输入的用户名的格式是否为email或mobile,如果都不是的时候使用login_id进行密码校验。
密码加密算法用login_pwd_encryption标识,目前只支持设置为1和2。1的算法是hexString(md5(password明文.getBytes("ISO8859-1")))。 明文hello1234运算出来为
9a1996efc97181f0aee18321aa3b3b12,事先可以测试下。2的算法是hexString(md5((password明文+salt).getBytes("ISO8859-1")))
从云账号服务端到ISV服务端的数据同步的主要是二种场景:
1、在云账号移动端SDK(或PC端),用户进行注册。注册时是新生成一条记录。
2、在云账号移动端SDK(或PC端),用户进行找密。找密是对已有记录的密码字段进行更新。
数据的增加和更新是通过taobao_openaccount_DataSync异步发消息通知给ISV的服务端的。
订阅消息
在 开放平台应用管理后台如下页面订阅消息,可以在分类中选择“导购平台”快速筛选消息,点击订阅taobao_openaccount_DataSync
点击消息名称,就能查看具体的返回信息字段。
代码实现接收消息
注册或找密(改密)会返回TOKEN。通过taobao.open.account.token.validate 验证TOKEN的结果中也会附带一份账号数据,这样做的目的是为了防止ISV客户端访问服务端时消息还没到。ISV可以根据taobao.open.account.token.validate所返回的数据进行存储和关联,消息作为最终一致性的保证手段。
在云账号移动端SDK(或PC端),用户进行登录、注册和找密操作成功之后,操作成功的状态需要使用Token(客户端android使用session.getAuthorizationCode()、IOS 上使用[[ALBBOpenAccountSession sharedInstance] getAuthToken]获得)可信的从ISV的客户端传递给ISV的服务端。ISV的服务端需要使用taobao.open.account.validate进行Token的校验,获得当前的用户的账号。
使用token登录,建立SDK内登录态,进而使用其他依赖登录态的服务,如Open IM和Open Trade等。 通过taobao.open.account.token.apply申请TOKEN。
这里以接入SDK的showLogin方法为例。注册、找密等类似。
1、如果存在数据则实时同步数据,如果是一个全新的APP请忽略
2、接入客户端SDK
3、ISV服务端开发一个根据Token进行登录的接口
4、ISV APP在获得云账号SDK的回调后调用第三步开发的接口进行登录
群号:1364864169