Google浏览器升级之后,无法登录

364 阅读1分钟

被这个问题折腾了很久,首先说一下解决方案吧!

1. 让系统的ip地址和接口地址在同一个域名和端口号下,即不存在跨域问题

2. 使用token验证,而不是cookie

原因:Google浏览器升级之后之所以无法登录,是因为浏览器为了屏蔽CSRF漏洞,所以限制使用第三方cookie。而我们目前系统的验证方式是后端在第一次进入系统时,会设置一个setCookie,登录成功之后所有的接口会根据响应头中的cookie值是否跟setcookie的值相同来验证,恰好系统又是跨域请求(即ip地址和接口地址的域名和端口号不同),所以就出现了登录之后又会跳回登录页面。

在90版本之前,都可以通过设置浏览器来临时解决这个问题,但是90版本之后,Google浏览器就全面禁用这个了。说明未来cookie验证已经在逐步被淘汰了。

如果开发一个系统之前,建议最好使用token来验证,而不是cookie,毕竟谁也不能保证不跨域。