跨域携带cookies无效问题

开发环境:vue,axios 0.17.1,springboot 2.1.1,springsession在本地测试页面时,发现cookies都没有传上去,本地测试是跨域的,原先是正常的。
开始以为是axios问题,结果试了XMLHttpRequest也是一样,都已设置withCredentials:true。跨域的请求都能接收和回应,但是请求时cookies都没有携带。
看了下set-cookie的值:SESSION=YWFlZTBjY2QtOWE4NC00MmI4LWEwZWEtYjUxYzY2ZjMyN2Nh; Path=/server/; HttpOnly; SameSite=Lax,这里多了个HttpOnly和SameSite,而问题就出在这个SameSite上。(可能是更新到SpringSession2之后导致的)
取消SameSite:
// SpringSession配置类
@EnableRedisHttpSession(
maxInactiveIntervalInSeconds = 7200
)
public class SpringSessionConfig {
public SpringSessionConfig() {}

@Bean
public CookieSerializer httpSessionIdResolver() {
DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
// 取消samesite
cookieSerializer.setSameSite(null);
return cookieSerializer;
}
}
ps:chrome的network中看不到跨域的set-cookie标记,也是坑。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理