前端请求cookie丢失问题

问题提出

在开发中的登录功能基本思路以下:html

  1. 前端请求验证码,后端生成一个验证码(保存在session中)并将其返回给前端,
  2. 前端用户输入帐号、密码、验证码后将表单传给后端,后端对比session中的验证码和用户输入的是否一致。

可是后端在第二步时,session中没有存有以前生成的验证码,也就没法对比用户的验证码是否正常,致使系统一直没法进入。前端

问题分析

首先须要考虑跨域问题,前端发送请求时要携带cookie,不然获取验证码请求和登录请求会建立两次session,致使没法取出上一次产生的验证码。打开开发者工具会发现请求头中没有cookie。 chrome

解决思路

在项目先后端中加入跨域代码
https://www.jianshu.com/p/dc506490c796  // 前端案例
https://www.cnblogs.com/gcdd/p/12292415.html  //后端案例

可是本项目在先后端已经加入了相关的代码,仍是存在没有cookie的现象。后端

浏览器层面问题

以前测试都是在chrome浏览器中进行的,换了火狐发现这个问题不复存在了,因此极可能是chrome浏览器的问题,通过百度发现chrome浏览器会存在session“丢失“问题。具体现象以下:跨域

https://www.jianshu.com/p/76d026cc4dd7
https://blog.csdn.net/fouling/article/details/108357824

因此将chrome浏览器的SameSite属性关闭便可。 在浏览器输入这个地址浏览器

chrome://flags/

而后将SameSite属性设置为Disabled便可解决问题。 cookie

相关文章
相关标签/搜索