IdentityServer4 突然登录就不香了?SameSite?

自己的一个使用了IdentityServer4 的单点登录demo项目,突然就登录不好使了,一直在登录页,调试了一下返现登录流程也走了,也登录成功了,就是跳转的时候又回到了登录页,百思不得其解。知道后来在控制台看到了这个;

IdentityServer4 突然登录就不香了?SameSite?

 

 点开发现了这个;

IdentityServer4 突然登录就不香了?SameSite?

 

 英文不好翻一下;

IdentityServer4 突然登录就不香了?SameSite?

 

 

现在知道这是一个cookie跨域的问题,我又去验证了一下,在谷歌浏览器下登录一直还在登录页,我换成edge浏览器,登录之后就会自带跳转,没问题;感觉问题应该是谷歌浏览器更新了,更新了啥协议啥的;

要怎么解决呢?我也还不知道呀,于是就打开了百度,  搜索 .net core SameSite ;

在微软的官方文档里  https://docs.microsoft.com/zh-cn/aspnet/core/security/samesite?view=aspnetcore-3.1 就有对应的描述,大家可以看下;

这里我就说一下我是怎么解决这个问题的;

//ConfigureServices 添加
services.Configure<CookiePolicyOptions>(options =>
            {
                options.MinimumSameSitePolicy = SameSiteMode.Lax;
            });

//Configure 添加 app.UseRouting(); app.UseCookiePolicy(); app.UseIdentityServer();
SameSiteMode.Lax  意思是 cookie 可以是相同站点请求和跨站点,这样在IdentityServer4 的单点登录中就可以正常使用了,用谷歌浏览器再次登录,已经可以正常跳转了;
上一篇:samesite-cookie详解(译文)


下一篇:Chrome 80 以上版本,跨域Cookie的SameSite问题