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

    使用抖音开放平台提供的 JSSDK,开发者的 Web 页面可以在抖音应用内实现如获取用户授权/登录信息。JS 授权的 Demo,详见JS 代码示例下载

    适用场景

    本能力适用于通过 JSSDK 使用抖音短视频授权,获取使用抖音短视频登录第三方应用的权限。

    抖音开放平台 JSSDK,适用于开发者 Web 页面在抖音应用内 Webview 容器里打开时的场景,支持 iOS 和 Android 抖音应用 10.4.0 以上版本客户端。

    开发者接入 SDK 后,可以在抖音应用内通过 JS Bridge 调用部分抖音客户端的原生能力。

    JSSDK 并不适用于 Web 页面在抖音应用外打开的场景,如:

    • 在系统浏览器里打开抖音。
    • 在系统浏览器里上传视频到抖音。
    • 在第三方应用分享视频到抖音应用等。

    如有此类场景需求,可以参考接入 OpenAPI 或者 iOS、Android 客户端 SDK。

    背景信息

    总体授权说明

    移动应用使用抖音短视频授权是基于 OAuth2.0 协议标准。抖音短视频授权采用 OAuth2.0 的授权码 (authorization code) 方式,首先需要获取一个临时票据,再用该临时票据获取令牌(access_token),然后通过该令牌获取用户信息。详见授权概述

    JS 授权流程

    JS 授权包含两个主要流程:

    1. 验证签名。
    2. 验证成功后,在 Ready 事件的回调内,调用 JSB 方法。以打开半屏授权弹窗为例:

    授权页面样式说明

    以半屏浮窗形式唤起用户授权页面

    准备工作

    在使用 JS 授权接入时必须进行安全域名设置和签名验证,为保证开发者的应用安全,需要开发者拥有保存临时凭据的后端服务。

    操作步骤

    1. JS 接入及能力获取。详情请参见 JS 接入指南
    2. 验证签名及方法说明。详情请参见签名验证
    3. 授权方式接入。详情请参见唤起用户授权页面

    注意:

    • client_secret 是应用密钥,泄漏后可能会发生用户隐私数据泄漏的风险,不可以暴露在客户端代码或者前端 Web 代码中,容易被窃取。
    • access_token 为用户授权第三方接口调用的凭证,存储在客户端代码或者前端 Web 代码中可能会被窃取,风险同上。
    • refresh_token 仅用于刷新 access_token,泄漏后相当于 access_token 泄漏,风险同上。 建议将 clientsecret 和 access_token 放到服务端来进行存储和使用。
    • 抖音版本差异说明。
      • openConfig 验签上线抖音版本为 10.4.0。
      • showOpenAuth 上线时间抖音版本为10.8.0,

    低版本抖音是无法唤起半屏授权的,所以请先判断抖音版本号,在符合要求的版本上面再使用该功能。抖音应用 12.0.0 之后,半屏授权为稳定版本,可以使用 12.0.0 之后的半屏授权。

    错误码

    详见状态码排查工具

    FAQ

    唤醒原生授权页面返回 10006 错误码

    非法重定向 URI。授权回调 URL 参数应与网站应用配置中的"授权回调域"一致。

    利用返回给应用的错误信息说明

    一般 showOpenAuth 调用不成功时,会有错误码返回给应用,告诉应用的错误原因。

    host 不合法

    检查应用的 JSB 安全域名是否跟调起 JSB 的网站域名一致。

    • iOS 返回数据格式:

    { "code": -2, "msg": "Error Domain=AWEOpenPlatformErrorDomain Code=-2 \"(null)\"", "res": { "code": 0, "errorMsg": "Error Domain=AWEOpenPlatformErrorDomain Code=-2 \"(null)\"", "errorCode": -2, "respJsTime": "1593694298166" } }

    • 安卓返回数据格式:

    { "code": -2, "msg": "用户取消", "res": { "code": 0, "errorCode": -2, "errorMsg": "用户取消" } }

    code 说明:

    • 1:成功
    • 0:失败
    • -2:用户取消授权

    当 code 为 0 时,errorCode 字段会给应用返回相关错误码,错误码信息请见状态码排查工具

    该文档是否有帮助?