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

.NET项目Google OAuth2登录失败排查(Azure登录正常)

问题分析与修复方案

你的核心问题是重复调用AddAuthentication()导致认证服务配置被覆盖,同时缺少明确的Cookie会话管理配置,进而引发Google登录失败。以下是具体修复步骤:


1. 修正认证服务配置代码

将两次AddAuthentication()调用合并,统一使用Cookie作为默认会话持久化方案,同时添加Azure和Google的认证提供者:

using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Identity.Web;

// 统一配置认证服务,Cookie作为默认Scheme用于会话持久化
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie()
    // 添加Azure AD登录支持
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"))
    // 添加Google OAuth2登录支持
    .AddGoogle(options =>
    {
        IConfigurationSection googleAuthNSection = builder.Configuration.GetSection("Authentication:Google");
        options.ClientId = googleAuthNSection["ClientId"];
        options.ClientSecret = googleAuthNSection["ClientSecret"];
        // 确保回调路径与Google Cloud配置一致(默认就是/signin-google,无需修改除非自定义)
        // options.CallbackPath = "/signin-google";
    });

2. 确保中间件顺序正确

在Program.cs的管道配置中,必须在UseAuthorization()之前添加UseAuthentication():

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

// 认证中间件必须在授权中间件之前
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();
app.MapRazorPages();

app.Run();

3. 验证Google Cloud配置

  • 重定向URI必须严格匹配:https://<你的域名>/signin-google(本地开发为https://localhost:xxxx/signin-google,注意端口号)
  • 确保客户端ID、密钥与appsettings.json中的配置完全一致,示例配置如下:
{
  "Authentication": {
    "Google": {
      "ClientId": "你的Google客户端ID",
      "ClientSecret": "你的Google客户端密钥"
    }
  },
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "你的Azure租户域名",
    "TenantId": "Azure租户ID",
    "ClientId": "Azure客户端ID",
    "CallbackPath": "/signin-oidc"
  }
}

4. 本地开发注意事项

Google OAuth要求重定向URI使用HTTPS(localhost除外,但建议本地开发也启用HTTPS):

  • 在Visual Studio中右键项目→属性→调试,勾选"启用SSL"
  • 确保启动URL为HTTPS格式(如https://localhost:7045)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:03:14