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

.NET Core Web应用出现redirect_uri_mismatch授权错误如何解决?

.NET Core对接Google OAuth 2.0 redirect_uri_mismatch错误解决方案

授权错误
错误 400:redirect_uri_mismatch
你无法登录该应用,因为它不符合Google的OAuth 2.0政策要求。
若你是该应用的开发者,请在Google Cloud Console中注册重定向URI。

该错误的核心原因是应用发起授权请求时携带的redirect_uri参数,和Google Cloud Console中预先配置的重定向URI完全不匹配,协议、域名、端口、路径、大小写、末尾斜杠任何一处不一致都会触发报错。

排查步骤

  • 第一步:确认应用实际生成的redirect_uri值
    浏览器发起授权请求时,直接截取地址栏URL中的redirect_uri参数,做URL解码后得到原始值。.NET Core官方Google OAuth中间件默认回调路径为/signin-google,未修改配置的情况下完整的重定向地址格式为[协议]://[域名/IP]:[端口]/signin-google。
  • 第二步:核对Google Cloud Console配置
    进入对应项目的OAuth客户端配置页,找到「已授权的重定向URI」列表,确认第一步拿到的实际地址已经被添加到列表中,核对时注意:
    • 协议必须完全一致,本地开发用http就填http,生产用https就填https
    • 端口号必须完全一致,本地服务跑在5001端口就不能填5000端口
    • 路径必须完全匹配,默认的/signin-google不能遗漏,不要额外添加末尾斜杠
    • 大小写完全匹配,Google的重定向地址校验是大小写敏感的
  • 第三步:核对.NET Core认证配置
    检查Program.cs中的Google认证配置,若手动修改了CallbackPath参数,需要和Google Cloud中配置的路径保持完全一致,配置参考:
    builder.Services.AddAuthentication()
        .AddGoogle(options =>
        {
            options.ClientId = "你的Google客户端ID";
            options.ClientSecret = "你的Google客户端密钥";
            // 若修改了默认回调路径,需要同步更新Google Cloud中的配置
            // options.CallbackPath = "/custom-oauth-callback";
        });
    
  • 第四步:反向代理场景特殊处理
    若应用前端部署了Nginx、CDN等反向代理服务,需要配置转发头,避免应用将https请求识别为http导致生成的重定向地址协议不匹配,配置参考:
    builder.Services.Configure<ForwardedHeadersOptions>(options =>
    {
        options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
    });
    // 需放在UseAuthentication、UseAuthorization中间件之前生效
    app.UseForwardedHeaders();
    

常见踩坑说明

  • localhost和127.0.0.1会被识别为不同的地址,应用本地运行在http://127.0.0.1:5000时,不能仅填写http://localhost:5000到授权列表
  • 修改Google Cloud的重定向配置后,需要等待1-5分钟才会生效,修改后立刻测试可能仍然报错
  • 生产环境部署后,需要额外将生产域名对应的重定向地址添加到Google Cloud的授权列表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:57:06