ios12 设备未请求 cookie

cookie not in request with ios12 device

因此,自从我将 phone 升级到 ios12 后,我无法登录我正在开发的网站 (.net core 2);我通过 facebook 登录,当 facebook 重定向到我的端点时,cookie 不在请求中,因此当此行运行时:

ExternalLoginInfo info = await _signInManager.GetExternalLoginInfoAsync();

它总是空的,我检查了请求并且没有 cookie,而在其他 devices/pc 上登录工作完美,它唯一的 ios12 给我这个问题 atm

我看到另一个 post 说要将 cookie 设置为 SameSite = None

services.ConfigureApplicationCookie(options =>
        {
            options.Cookie.Path = "/";
            options.Cookie.SameSite = SameSiteMode.None;
            options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
            options.SlidingExpiration = true;
            options.AccessDeniedPath = "/Welcome";
        });

但这没有用,还有什么我可以尝试的吗?

所以我修复了它,这是一个类似的解决方案,但是如果您使用外部登录,则必须将外部 cookie 配置为 SameSite = SameSiteMode.None

services.ConfigureExternalCookie(options =>
        {
            options.Cookie.SameSite = SameSiteMode.None;
        });

扩展 Rob 的回答...

将以下内容添加到我的 OpenIdConnect 身份验证块解决了问题:

.Services.ConfigureExternalCookie(options => {
    options.Cookie = new Microsoft.AspNetCore.Http.CookieBuilder
    {
        SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None
    };
});

看起来修复将添加到 2.3 - External authentication failing on iOS 12 #2595