我有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/
我该如何解决这个问题?
1条答案
按热度按时间btqmn9zl1#
我在https://stackoverflow.com/a/46412839/13781306上的注解中跟踪了解决方案。当我设置
Cookie在请求中传递,但不存储在浏览器存储/Cookie中。这很好,解决了我的问题。