在Chrome中无法在ASP.Net Core中使用Google OAuth

问题描述

我有一个运行在Heroku上的ASP.Net Core 3.1应用程序,它使用Google的OAuth(AspNetCore.Authentication.Google程序包)登录用户。在Chrome 84.0上运行时,身份验证失败并且我的服务器返回

Exception: Correlation Failed.
UnkNown location
    
Exception: An error was encountered while handling the remote login.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<TOptions>.HandleRequestAsync()
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

在Firefox 79.0,Edge 84.0,Android Chrome 71和Android Firefox 68中进行身份验证时,工作正常,所以我的Chrome副本是否有问题?

将Chrome的“认情况下,SameSite Cookies”设置为“已禁用”可解决此问题,但我不能指望最终用户进入实验性设置。 我尝试将cookie pollicy设置为SameSiteMode.None:

...
        services.Configure<CookiePolicyOptions>(options =>
        {
            options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
            options.OnAppendCookie = cookieContext =>
                    cookieContext.CookieOptions.SameSite = SameSiteMode.None;
            options.OnDeleteCookie = cookieContext =>
                    cookieContext.CookieOptions.SameSite = SameSiteMode.None;
        });
...

...
            app.UseCookiePolicy();
            app.UseAuthentication();
...

它没有帮助。我也尝试过这篇文章解决方案: https://www.thinktecture.com/en/identity/samesite/prepare-your-identityserver/,但也无济于事。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)