使用Django Social包实现Google登录时出现redirect_uri_mismatch错误
这个问题在使用Django Social做第三方登录时很常见,核心原因就是Google OAuth控制台里配置的已授权重定向URI,和你的Django应用实际发送的回调地址不匹配。下面是具体的解决步骤:
1. 更新Google OAuth客户端的授权URI
- 登录Google Cloud Console,找到你的项目,进入「API和服务」→「凭据」页面。
- 定位到错误提示里对应的「OAuth 2.0 客户端ID」,点击编辑按钮。
- 在「已授权的重定向URI」区域,添加这个地址:
http://localhost:8000/oauth/complete/google-oauth2/ - 点击「保存」后,记得等1-2分钟让配置生效(Google的配置偶尔会有缓存延迟)。
2. 确认Django配置的一致性
你当前settings.py里的LOGIN_URL、LOGIN_REDIRECT_URL这些是登录成功后的跳转路径,和OAuth回调URI无关。需要注意的是:如果你的项目自定义了SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URI参数,必须保证它和Google控制台里填写的地址完全一致。默认情况下Django Social会用/oauth/complete/google-oauth2/作为回调路径,所以只要Google那边配置正确就没问题。
额外提醒
- 如果是生产环境部署,要把
localhost:8000替换成你的实际域名,比如https://yourdomain.com/oauth/complete/google-oauth2/ - 一定要保证URI的协议(http/https)、域名、端口、路径完全匹配,哪怕多一个斜杠或者拼写错误都会触发这个报错。
内容的提问来源于stack exchange,提问作者Anjitha
相关产品推荐
相关产品推荐

