验证签名收藏我的收藏
收藏
我的收藏背景信息
验证签名是 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×tamp=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,请在回调参数中查看错误提示,根据提示排查问题。