抖音开放平台Logo
开发者文档
控制台
  • 移动应用
  • 网站应用
  • JS概述
  • Web 授权
  • JS 授权
  • JS 授权
  • JS 接入指南
  • 验证签名
  • JS 代码示例下载
  • JS Bridge 能力
  • H5 发布
  • 验证签名
    收藏
    我的收藏

    背景信息

    验证签名是 JS 授权的第一步,通过验证才能继续进行唤起授权页面等操作。

    前提条件

      1.在验证签名之前,您需要成功创建一个网站应用并通过开放平台审核,并获得相应的ClientKey和ClientSecret,详细操作流程请参见入驻开发者平台
      2.ClientKey、ClientSecret的查询位置:「抖音开放平台首页」>「右上角控制台」>「我的应用」>「网站应用」>「应用信息」

    操作步骤

      1.调用生成 client_token获取 client_access_token(开发者必须在自己的服务全局缓存 access_token)。
      2.使用获取到的 client_access_token 获取 jsb_ticket(有效期 7200 秒左右,具体时效需依赖接口返回,开发者必须在自己的服务全局缓存 ticket)。详情请参见获取 jsb_ticket
      3.根据 jsb_ticket 和其它字段进行签名计算。参与签名的字段包括 noncestr(随机字符串), 有效的 jsb_ticket、timestamp(时间戳,秒级,类型为 String), url(当前网页的URL,不包含 # 及其后面部分)。
    例如:
    参数
    示例值
    nonce_str
    Wm3WZYTPz0wzccnW
    jsapi_ticket
    sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
    timestamp
    1414587457
    url
      对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 string1。jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&nonce_str=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=https://open.douyin.com?params=value
      对 string1 进行 MD5 签名,得到 signature:af3b1c5a146c609fbe429de8ba6163a0
    注意事项:
      签名用的 nonce_str 和 timestamp 必须与 sdk.config 中的 nonce_str 和 timestamp 相同。
      签名用的 url 必须是调用 JS 接口页面的完整 URL(但是不包括#及后面部分)。
      出于安全考虑,开发者必须在服务器端实现签名的逻辑。
      timestamp 类型为 String。

    结果验证

    将生成的签名作为JS 接入指南中步骤五 sdk.config 的参数,配置后如果执行了 sdk.ready 回调,说明验证成功。如果验证失败则会执行错误回调 sdk.error,请在回调参数中查看错误提示,根据提示排查问题。