vue.js 开发期间在localhost上设置cookie时出现问题

eufgjt7s  于 2022-12-14  发布在  Vue.js
关注(0)|答案(1)|浏览(221)

我有nodejs****express应用程序作为后端,和vue应用程序作为我的服务器上的前端。我使用会话cookie进行身份验证,我只是不能让他们在我的本地开发机器上工作。Cookie在响应中发送,但它不是由浏览器保存。我知道问题是请求来源必须与主机相同,我已经阅读了所有的文章/问题与问题有关,我只是不能解决它。
在服务器上,所有的东西都是用https上的nginx代理的。Cookie设置在那里,一切都工作正常,因为它们在同一个主机上。
我的本地vitedev服务器运行在https上,端口为5173。
我使用axios进行API调用,并设置了

axios.defaults.withCredentials = true;

Cookie属性为

sameSite:'none', 
secure:true,
httpOnly:true,

明示:

app.use(
  cors({
    origin: ['https://localhost:5173', 'https://my.site.com'],
    credentials: true,
  })
);

就像我之前说的,cookie是在服务器的响应中发送的,只是没有存储在浏览器上,因为在请求头中:

host:my.site.com
origin:https://localhost:5173
referer:https://localhost:5173/

我该如何解决这个问题?

btqmn9zl

btqmn9zl1#

我在https://stackoverflow.com/a/46412839/13781306上的注解中跟踪了解决方案。当我设置

sameSite:'none', 
secure:false,

Cookie在请求中传递,但不存储在浏览器存储/Cookie中。这很好,解决了我的问题。

相关问题