Cookie 未在 iOS 12 设备上请求



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

ExternalLoginInfo info = await _signInManager.GetExternalLoginInfoAsync();

它总是空,我检查了请求并且没有cookie,而在其他设备/PC上登录工作正常,它唯一的ios12给了我这个问题ATM

我看到另一篇帖子说将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 - iOS 12 上的外部身份验证失败 #2595

最新更新