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

ASP.NET Core 3.1启用Google认证时重定向URI不匹配问题求解

解决ASP.NET Core 3.1 Google认证重定向URI不匹配问题

我来帮你理清楚这个问题——你遇到的核心矛盾是Google认证回调的URI和你在控制台配置的不匹配,而且这里有两个容易搞混的重定向环节,咱们一步步解决:

问题根源

错误提示里的https://localhost:44345/signin-google是ASP.NET Core Google认证中间件的默认回调地址,也就是Google认证成功后直接回调到你应用的地址。但你在Google控制台里配置的是/Account/GoogleResponse,这是你自己定义的Action路径,两者不匹配就导致了错误。

这里要区分两个重定向:

  • Google直接回调到你应用的地址:必须在Google控制台配置
  • 应用内部跳转的地址:由ASP.NET Core中间件处理,无需在Google控制台配置

方案一:使用默认回调路径(推荐,更省心)

这个方案不需要改代码,只需要更新Google控制台的配置:

  1. 打开Google开发者控制台,找到你的OAuth客户端ID配置页
  2. 在「授权重定向URI」列表中,添加 https://localhost:44345/signin-google
  3. 保存更改(注意:Google的配置更新可能需要1-2分钟生效,别着急立刻测试)
  4. 你的现有代码完全不用修改:
    • AddGoogle默认的回调路径就是/signin-google,和控制台配置匹配
    • 你写的GoogleLogin和GoogleResponse逻辑是正确的:Google回调到/signin-google后,中间件会自动处理认证票据,再跳转到你的GoogleResponse Action完成后续登录流程

方案二:自定义回调路径(如果你想保留控制台的/Account/GoogleResponse)

如果希望保持控制台的URI配置,需要修改代码让中间件适配:

  1. 保持Google控制台的「授权重定向URI」为https://localhost:44345/Account/GoogleResponse
  2. 修改AddGoogle的配置,指定回调路径:
    services.AddAuthentication()
        .AddGoogle(opts => {
            opts.ClientId = "xxx.apps.googleusercontent.com";
            opts.ClientSecret = "yyy";
            opts.CallbackPath = "/Account/GoogleResponse"; // 和控制台URI完全匹配
        });
    
  3. (可选)简化GoogleLogin方法:
    现在回调路径直接指向你的GoogleResponse Action,代码可以更简洁:
    [AllowAnonymous]
    public IActionResult GoogleLogin(string returnUrl)
    {
        var properties = signInManager.ConfigureExternalAuthenticationProperties("Google", returnUrl);
        return new ChallengeResult("Google", properties);
    }
    
    中间件会在处理完Google回调后,自动跳转到returnUrl指定的地址,你的GoogleResponse只需要专注处理外部登录逻辑即可。

注意事项

  • 确保URI的大小写、协议(https/http)、端口号完全一致,差一个字符都会报错
  • 如果是开发环境用HTTP测试,要把控制台的URI改成http://localhost:xxxx/xxx,但生产环境必须用HTTPS
  • Google配置生效有延迟,修改后别立刻测试,等几分钟再试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:42:36