You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

django-oauth-toolkit客户端凭证模式未返回refresh_token问题说明

问题背景

在Django REST Framework中集成django-oauth-toolkit实现OAuth2授权能力,实现逻辑为:

  • 合作方用户可在平台注册自有应用
  • 应用注册完成后获取对应的client id、client secret凭证
  • 合作方持有凭证申领access_token,凭令牌调用接口访问服务端开放资源

目前已将原有的表单式应用注册流程全部改造为REST接口,但调用access_token申领接口时,响应仅返回access_token及对应过期时间,未返回预期的refresh_token,未定位到配置遗漏点。
当前应用配置参数:

  • Client type:Confidential
  • Authorization grant type:Client Credentials
问题结论

该现象不属于配置错误,无需调整django-oauth-toolkit配置补全返回。
查阅RFC 6749 OAuth2官方规范可确认:Client Credentials(客户端凭证)授权模式的设计初衷是供客户端以自身身份(而非代理终端用户)请求受保护资源,规范明确要求该授权模式下授权服务器不得签发refresh_token:

客户端凭证模式的访问令牌响应中,授权服务器不得包含刷新令牌。

如果业务场景确实需要使用refresh_token能力,需根据实际业务诉求切换支持刷新令牌的授权类型,可选类型包括授权码模式(Authorization Code)、密码模式(Resource Owner Password Credentials,不推荐生产环境使用)。


内容的提问来源于stack exchange,提问作者Shishir Subedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:51:22