问题描述

之前 SpringBoot + Vue 项目的登录功能中,后端将用户登录态存到了 Session 中,前后端都进行了跨域配置,但是浏览器中 Cookie 操作失败,导致无法识别到当前用户。

经过一系列的查阅,问题原因:浏览器默认 SameSite=Lax 不支持跨域 Cookie 操作,因此无法设置 Cookie。

解决方法

https + SameSite=none

  1. 配置 SSL 证书,将网站从 http 改为 https(待学习,后续会写教程)
  2. 后端设置 SameSite 属性为 “none”(需要同时将 secure 设置为 “true”)
    application.yaml:
    1
    2
    3
    4
    5
    6
    7
    server:
    servlet:
    session:
    cookie:
    domain: localhost
    same-site: none
    secure: true