签名接口

接口由开发者服务端开发,提供给前端在 JSSDK 初始化时填入接口 URL,JSSDK 内部会自行调用。

接口的交互流程

  1. JSSDK 内部在向开放平台发送请求获取 access_token 时,会先调用此接口获取到 signature

  2. 开发者服务端将接收到的客户端请求参数,按照签名规则计算出签名值signature

  3. 接口返回签名值 signature

接口设计

请求类型 POST
请求头(Request Headers)Content-Type: application/x-www-form-urlencoded
参数

这些参数由 JSSDK 内部自动传入,开发者仅需在 JSSDK 调用 config() 初始化时填写接口 URL。

参数名 类型 必填 描述
client_id String 喜马拉雅开放平台应用公钥,即 app_key(接入方服务端需要校验入参合法性)
device_id String 设备 ID (接入方服务端需要校验入参合法性)
nonce String 一个随机字符串,每个请求都会重新生成(接入方服务端需要校验入参唯一性)
timestamp String 当前 Unix 毫秒数时间戳,每个请求都会重新生成(接入方服务端需要校验入参唯一性)
params String 用于计算签名的全部业务请求参数, JSON.stringify() 后的结果(开发者服务端需要从这里解析出参数,用于计算签名)
返回值

返回值结构必须如下,signature 键名必须完全相同,JSSDK 内部调用时会校验 signature,并且值有效,但不校验 code 的值。

字段名 类型 描述
code Int 状态码
message String 消息内容
signature String 签名值

示例

参数

client_id(即 app_key)是隐私信息,所以示例演示用 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 替换了。

client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=dasffasddafs12345&nonce=sbby2hyM9M&timestamp=1566285175413&params=%7B%22client_id%22%3A%22xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%22%2C%22device_id%22%3A%22dasffasddafs12345%22%2C%22nonce%22%3A%22sbby2hyM9M%22%2C%22timestamp%22%3A1566285175413%2C%22grant_type%22%3A%22js_client_credentials%22%7D

截取 curl 的部分关键信息

curl 
...
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' 
--data 'client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=dasffasddafs12345&nonce=sbby2hyM9M&timestamp=1566285175413&params=%7B%22client_id%22%3A%22xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%22%2C%22device_id%22%3A%22dasffasddafs12345%22%2C%22nonce%22%3A%22sbby2hyM9M%22%2C%22timestamp%22%3A1566285175413%2C%22grant_type%22%3A%22js_client_credentials%22%7D' 
...
返回值
{
    "code": 0,
    "message": "success",
    "signature": "8445a409c8065a9a4441959f7035b5d0"
}
© www.ximalaya.com lnc.ALL Rights Reserved 修订时间: 2019-08-20 15:33:01

results matching ""

    No results matching ""