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

使用drf social-oauth2调用convert-token接口返回access_denied问题求助

问题排查与解答

参数明确

  • client_id & client_secret:必须填写Django后台创建的OAuth2 Application凭证,不是Google的密钥。创建Application时需满足:
    • client_type设为confidential(需验证client_secret)
    • authorization_grant_type可选择password或client_credentials,保证该应用有权限调用转换接口
  • token参数:必须传Google返回的access_token,而非Authorization Code。convert-token接口的作用是将第三方平台的access_token转换为Django OAuth2的token,因此需要的是已获取到的Google access_token。

额外排查项

若参数无误仍报错,检查以下点:

  1. Google OAuth2配置:在Django settings.py中,确认SOCIAL_AUTH_GOOGLE_OAUTH2_KEY和SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET与Google控制台的凭证一致,且Google控制台已添加当前服务的授权域名/回调地址。
  2. 用户自动创建:确保settings.py中SOCIAL_AUTH_CREATE_USERS = True(默认开启),否则Google账号对应的Django用户不存在时会被拒绝。
  3. backend拼写:确认请求中backend=google-oauth2拼写正确,避免写成google等错误值。
  4. 请求格式:curl的-d参数默认使用application/x-www-form-urlencoded,无需额外修改header,确保参数无URL编码错误(如&符号无需手动转义)。
  5. Google token有效性:验证Google access_token是否有效,无效token会导致转换失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:50:56