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

使用Django social auth做第三方登录报Error 401: invalid_client如何解决

401 invalid_client 报错排查步骤

这个报错核心是OAuth服务端没有匹配到你请求里携带的客户端标识,按以下顺序核对配置即可:

谷歌登录配置核对

  • 确认Django settings.py 中填写的SOCIAL_AUTH_GOOGLE_OAUTH2_KEY和谷歌云控制台「凭据」页面的客户端ID完全一致,需完整带上.apps.googleusercontent.com后缀,不要有多余空格、换行符
  • 若当前应用是「测试」发布状态,需确认尝试登录的谷歌账号已经被添加到「OAuth 同意屏幕」的测试用户列表中;如果要对外开放使用,需将发布状态切换为「正式上线」
  • 核对谷歌云控制台「已授权的重定向URI」和Django回调地址完全匹配:本地测试需填写http://localhost:8000/complete/google-oauth2/,注意http/https协议、域名、端口、路径、末尾斜杠都要完全对应,不能有差异

Facebook登录配置核对

  • 确认settings.py中SOCIAL_AUTH_FACEBOOK_KEY和Facebook开发者后台的「应用编号」完全一致,SOCIAL_AUTH_FACEBOOK_SECRET和「应用密钥」匹配,不要出现两个配置项写反的情况
  • 若应用处于「开发模式」,仅已添加的测试账号可登录,正式上线需先完成平台审核切换为上线状态
  • 核对Facebook后台OAuth设置里的「有效OAuth跳转URI」和Django回调地址完全匹配,本地测试需填写http://localhost:8000/complete/facebook/

Django端通用核对项

  • 确认配置中已经正确注册认证后端,示例配置如下:
SOCIAL_AUTH_AUTHENTICATION_BACKENDS = (
    'social_core.backends.google.GoogleOAuth2',
    'social_core.backends.facebook.FacebookOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)
  • 如果你通过环境变量存储密钥/ID,可直接打印对应变量值,确认加载的内容和控制台复制的凭证完全一致,避免环境变量读取错误

相关截图

配置页截图
报错页截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:45:02