前后端分离项目中的 Cookie 跨域问题
问题描述
之前 SpringBoot + Vue 项目的登录功能中,后端将用户登录态存到了 Session 中,前后端都进行了跨域配置,但是浏览器中 Cookie 操作失败,导致无法识别到当前用户。
经过一系列的查阅,问题原因:浏览器默认 SameSite=Lax 不支持跨域 Cookie 操作,因此无法设置 Cookie。
解决方法
https + SameSite=none
- 配置 SSL 证书,将网站从 http 改为 https(待学习,后续会写教程)
- 后端设置 SameSite 属性为 “none”(需要同时将 secure 设置为 “true”)
application.yaml:1
2
3
4
5
6
7server:
servlet:
session:
cookie:
domain: localhost
same-site: none
secure: true
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShameYang's Blog!