WEB授权接入说明
功能介绍
本文档旨在说明: 需要抖音用户授权的接口对接、无需授权的接口对接和静默授权的对接的操作,便于开发者快速完成授权工作
适用场景
内容 | 适用场景 |
---|---|
授权 | 需要用户授权后方可调用的接口,例如:视频、用户等 |
无需授权 | 无需用户授权便可使用的接口,例如:生成share_id 等 |
静默授权 | 在用户无感知的状态下即可获取当前应用的授权。用于在抖音端内相关生态应用操作。例如:用户A授权B应用,B应用的抖音小程序通过静默授权可获得用户A的抖音小程序授权 |
接口明细
阶段 | 步骤说明 | 接口名称 |
---|---|---|
授权步骤一 | 通过用户授权获取授权码code | GET /platform/oauth/connect/ 获取授权码(code) |
授权步骤二 | client_key、clientSecret和通过上一步的code 换取token | GET /oauth/access_token/ 获取access_token |
授权步骤三 | 刷新access_token | GET /oauth/refresh_token/ 刷新access_token |
授权步骤四 | 刷新refresh_token | GET /oauth/renew_refresh_token/ 刷新refresh_token |
无授权 | 生成client_token | GET /oauth/client_token/ 生成client_token |
静默授权 | 获取授权码(code) | GET /oauth/authorize/v2/ 获取授权码(code) |
总体授权说明
网站应用抖音登录是基于OAuth2.0协议标准构建的授权登录系统,目前提供扫码登录和账号密码授权登录两种方式。
详见:总体授权说明
相关建议
-
client_secret是应用密钥、access_token为用户授权第三方接口调用的凭证,泄漏后可能会发生用户隐私数据泄漏的风险,存储在客户端并不安全,容易被窃取。
-
refresh_token仅用于刷新access_token,泄漏后相当于access_token泄漏,风险同上。 建议将client_secret和access_token放到服务端来进行存储和使用。
准备工作
1.应用创建
在使用抖音OAuth2.0授权接入之前,您需要成功创建一个应用并通过开放平台审核,详细操作流程见:开放平台新手指南
2.ClientKey、ClientSecret查询位置
首页-管理中心-应用管理-数据
操作步骤
步骤一:通过URL展示给用户授权,获取授权码
操作方法:
步骤说明 | 接口名称 |
---|---|
通过用户授权获取授权码code | GET /platform/oauth/connect/ 获取授权码(code) |
说明:注意该URL的作用为展示扫码
步骤二:引导用户授权
用户授权支持PC端和客户端,授权形式支持二维码登录授权和手机号验证码两种形式。
1.二维码授权——PC端
用户需用抖音app打开首页搜索-扫一扫,扫描PC端的二维码进行登录操作。
1.1二维码登录

1.2二维码授权

2.账号验证码授权——PC端

3.账号验证码授权——客户端

说明:用户授权操作完成后,回退上一步页面(即授权操作前停留页面)
步骤三:获取授权码,通过授权码code获取access_token
1.用户完成授权操作后,授权码(code)可以在拼接页面内查询
2.通过code换token接口信息:
步骤说明 | 接口名称 |
---|---|
通过授权码code获取access_token | GET /oauth/access_token/ 获取access_token |
步骤四:刷新用户授权的access_token或续期
1.当access_token过期(过期时间15天)后,可以通过该接口使用refresh_token(过期时间30天)进行刷新,刷新access_token或续期不会改变refresh_token的有效期。
2.状态说明
状态 | 说明 |
---|---|
access_token已过期 | 1. 调用接口会报错(error_code=10008或2190008),refresh_token后会获取一个新的access_token以及新的超时时间。 |
access_token未过期 | 1. refresh_token不会改变原来的access_token,但超时时间会更新,相当于续期。 |
1. refresh_token过期 | 1. 获取access_token会报错(error_code=10010),此时需要重新走用户授权流程 |
3.刷新refresh_token一些说明
(1)前提: client_key需要具备renew_refresh_token这个权限
(2)可以通过旧的refresh_token获取新的refresh_token,调用后旧refresh_token会失效,新refresh_token有30天有效期。最多只能获取5次新的refresh_token,5次过后需要用户重新授权
接口信息:
步骤说明 | 接口名称 |
---|---|
刷新access_token | GET /oauth/refresh_token/ 刷新access_token |
刷新refresh_token | GET /oauth/renew_refresh_token/ 刷新refresh_token |
无需授权说明
功能介绍
client_access_token用于不需要用户授权就可以调用的接口,如生成share-id。
client_access_token的有效时间为2个小时,重复获取token后会使上次的token失效(但有5分钟的缓冲时间)。
注意事项
不要在任何情况下将client access token下发给客户端。原因:
• client_access_token: 操作的是APP的数据,如设置APP需要监听的事件
• user_access_token:操作的是用户的数据
所有的请求都应该收敛在服务端,第三方服务端与平台交互获取数据后,将结果下发给客户端。
操作步骤
步骤说明 | 接口名称 |
---|---|
生成client_token | GET /oauth/client_token/ 生成client_token |
静默授权
功能说明
可以在用户无感知的情况下,获取用户在当前应用的open_id。
注意事项
1.这个接口需要在抖音端内可以打开的h5页面调用才有效
2.请求域名为https://aweme.snssdk.com/,请求的域名跟其他接口不同
3.如果ClientKey具备login_id这个scope,请求成功后,会重定向到redirect_uri,并且带上code
4.code与用户授权换取的一样,用来调用https://open.douyin.com/oauth/access_token/ 换取用户open_id
操作步骤
步骤说明 | 接口名称 |
---|---|
获取授权码(code) | GET /oauth/authorize/v2/ 获取授权码(code) |
错误码
详见:状态码
FAQ
1.Token有效期与续期
access_token | refresh_token | 最长续期 |
---|---|---|
15天 | 30天 | 最多只能再获取5次新的refresh_token 最长续期:15+30+30*5 = 195 天 |