服务端场景介绍

云账号移动端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存在历史数据,那么在上线前,需要导入存量数据。因为移动端的升级缓慢,所以可能无法保证一次切干净,所以建议只要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的服务端

从云账号服务端到ISV服务端的数据同步的主要是二种场景:

1、在云账号移动端SDK(或PC端),用户进行注册。注册时是新生成一条记录。

2、在云账号移动端SDK(或PC端),用户进行找密。找密是对已有记录的密码字段进行更新。

一,消息通知同步帐号数据

数据的增加和更新是通过taobao_openaccount_DataSync异步发消息通知给ISV的服务端的。

订阅消息

在 开放平台应用管理后台如下页面订阅消息,可以在分类中选择“导购平台”快速筛选消息,点击订阅taobao_openaccount_DataSync 

点击消息名称,就能查看具体的返回信息字段。

代码实现接收消息

接收消息,实现方式有两种: 通过SDK接收消息、 通过API接收消息,具体可以参考: 消息通知文档

二,Token验证同步帐号数据

注册或找密(改密)会返回TOKEN。通过taobao.open.account.token.validate 验证TOKEN的结果中也会附带一份账号数据,这样做的目的是为了防止ISV客户端访问服务端时消息还没到。ISV可以根据taobao.open.account.token.validate所返回的数据进行存储和关联,消息作为最终一致性的保证手段。

Token的申请和校验

一,Token校验

在云账号移动端SDK(或PC端),用户进行登录、注册和找密操作成功之后,操作成功的状态需要使用Token(客户端android使用session.getAuthorizationCode()、IOS 上使用[[ALBBOpenAccountSession sharedInstance] getAuthToken]获得)可信的从ISV的客户端传递给ISV的服务端。ISV的服务端需要使用taobao.open.account.validate进行Token的校验,获得当前的用户的账号。

二,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的回调后调用第三步开发的接口进行登录

错误码

10000 SERVER_ERROR(系统异常了,无法处理)
10001 ILLEGAL_PARAM(参数错误)
20001 RECORD_ALREADY_EXIST(记录已经存在,判断依据是根据mobile、email、login_id、isv_account_id、open_id)
20002 RECORD_NOT_EXIST(记录不存在,如删除的时候传了错误的id或isv_account_id)
20004 DOMAIN_MISMATCH(数据域检查错误,操作了不属于自己域的数据)
20005 UPDATE_FAIL(更新时DB异常)
20006 INSERT_FAIL(插入时DB异常)
20007 INSERT_INDEX_FAIL(写索引DB异常)
20008 INVALID_TOKEN(Token错误或者验证时间超过了1分钟)


 

 

 群号:1364864169

FAQ

关于此文档暂时还没有FAQ
返回
顶部