对接Dropbox API时令牌有效期过短,如何获取长期令牌或通过端点获取?
Dropbox API 令牌有效期与持久化解决方案
核心概念澄清
Dropbox API的令牌分为两类:
- 短期访问令牌:默认有效期15分钟,用于直接调用API接口。
- 刷新令牌:长期有效(除非用户主动撤销授权或应用被封禁),可用来定期获取新的短期访问令牌。
获取持久化令牌的具体步骤
授权请求添加
offline权限
发起OAuth授权请求时,必须携带token_access_type=offline参数——这是获取刷新令牌的核心前提,缺省该参数只会返回短期访问令牌。
示例授权请求核心参数:response_type=code client_id=YOUR_APP_ID redirect_uri=YOUR_REDIRECT_URI token_access_type=offline scope=YOUR_REQUIRED_SCOPES用授权码交换令牌
用户完成授权后会得到一个授权码,用该码调用令牌交换端点,返回结果中将包含refresh_token字段:POST /oauth2/token Content-Type: application/x-www-form-urlencoded code=AUTHORIZATION_CODE grant_type=authorization_code client_id=YOUR_APP_ID client_secret=YOUR_APP_SECRET redirect_uri=YOUR_REDIRECT_URI返回JSON示例:
{ "access_token": "SHORT_LIVED_ACCESS_TOKEN", "token_type": "bearer", "expires_in": 900, // 15分钟,单位秒 "refresh_token": "LONG_LIVED_REFRESH_TOKEN" }用刷新令牌续期访问令牌
当短期访问令牌过期后,调用同一个/oauth2/token端点,通过刷新令牌换取新的短期访问令牌:POST /oauth2/token Content-Type: application/x-www-form-urlencoded grant_type=refresh_token refresh_token=YOUR_REFRESH_TOKEN client_id=YOUR_APP_ID client_secret=YOUR_APP_SECRET该请求会返回新的
access_token和expires_in,refresh_token通常不会变更(除非Dropbox主动失效,此情况极少)。
关键注意事项
- 刷新令牌需妥善存储,严禁暴露给前端或不可信环境,它等同于用户的长期授权凭证。
- 若用户在Dropbox账户的「已连接应用」中主动撤销授权,对应的刷新令牌会立即失效。
- 官方文档中其实明确说明了
offline模式与刷新令牌的用法,可能你之前未留意OAuth 2.0授权流程的细节模块。
内容的提问来源于stack exchange,提问作者user20576736
相关产品推荐
相关产品推荐

