要做一个登录验证的功能,采用前后端分离的方式,后端使用.Net开发的WebAPI, 在登录的时候调用API的登录接口,成功后生成一个token,返回给前端,API把token保存在session中。在调用其它方法时,前端把token传到API,API从session
获取到token和前端传来的比对,但是获取不到session中的token,发现登录的时候sessionID和调用其它接口时的sessionID不一样。API的SupportsCredentials也设置了true,ajax中设置了widthCredentials为true,问题依据。静候指点迷津!
session对应的cookie没有设置成功,被拦截了,鼠标移动到感叹号上会有原因。
就算能设置成功,由于samesite是lax,也不会发送cookie值。以下截图来源:
将ajax请求接口改为https协议,设置SameSite=None; Secure
asp.net_sessionid是core自动生成,要改下配置,参考下面的文章