本身的一个使用了IdentityServer4 的单点登陆demo项目,忽然就登陆很差使了,一直在登陆页,调试了一下返现登陆流程也走了,也登陆成功了,就是跳转的时候又回到了登陆页,百思不得其解。知道后来在控制台看到了这个;跨域
点开发现了这个;浏览器
英文很差翻一下;cookie
如今知道这是一个cookie跨域的问题,我又去验证了一下,在谷歌浏览器下登陆一直还在登陆页,我换成edge浏览器,登陆以后就会自动跳转,没问题;感受问题应该是谷歌浏览器更新了,更新了啥协议啥的;app
要怎么解决呢?我也还不知道呀,因而就打开了百度, 搜索 .net core SameSite ;spa
在微软的官方文档里 https://docs.microsoft.com/zh-cn/aspnet/core/security/samesite?view=aspnetcore-3.1 就有对应的描述,你们能够看下;.net
这里我就说一下我是怎么解决这个问题的;3d
//ConfigureServices 添加 services.Configure<CookiePolicyOptions>(options => { options.MinimumSameSitePolicy = SameSiteMode.Lax; });
//Configure 添加 app.UseRouting(); app.UseCookiePolicy(); app.UseIdentityServer();
SameSiteMode.Lax 意思是 cookie 能够是相同站点请求和跨站点。启动项目,用谷歌浏览器再次登陆,已经能够正常跳转了;