浏览器上未设置 Cookie

问题描述 投票:0回答:1

我正在开发具有

nodejs
身份验证功能的
react
后端和
jwt
前端应用程序。当验证用户身份时,我需要通过
Set-cookie header
向客户端发送 cookie。当我使用 localhost 时它工作正常,但在
render
上部署它后它不起作用。 cookie 没有被保存。在网络选项卡上,它会发出警告
This attempt to set a cookie via Set-cookie header was blocked because its Domain attribute was invalid with regard to the current host url

网络选项卡

响应 Cookies

这是我的cookie配置文件

import urls from './urls.js';

const { hostname } = new URL(urls.CLIENT_URL);
const domain = `.${hostname.split('.').slice(-2).join('.')}`; //.onrender.com

const access = {
    name: process.env.COOKIE_ACCESS_NAME,
    options: {
        sameSite: 'none',
        domain,
        httpOnly: false,
        secure: true,
        maxAge: process.env.ACCESS_EXP,
    },
    delete: {
        sameSite: 'none',
        domain,
        httpOnly: false,
        secure: true,
        maxAge: new Date(null),
    },
};

const refresh = {
    name: process.env.COOKIE_REFRESH_NAME,
    options: {
        sameSite: 'none',
        domain,
        httpOnly: true,
        secure: true,
        maxAge: process.env.REFRESH_EXP,
    },
    delete: {
        sameSite: 'none',
        domain,
        httpOnly: true,
        secure: true,
        maxAge: new Date(null),
    },
};

export default { access, refresh };

在这里,我已将域名

const
更改为

(已手动输入以检查

const domain = domain-name

注意作品。这是什么问题?

node.js cookies jwt http-headers setcookie
1个回答
1
投票

在 docapp-blind.onrender.com 上运行的服务器无法直接在 docapp-client.onrender.com 上设置 cookie。在您的后端 cookie 设置配置中,将域值更改为 onrender.com。

在上图中,您可以看到 set-cookie 上的域是 https://docapp-client-blind.onrender.com。将此值从后端更改为 .onrender.com

© www.soinside.com 2019 - 2024. All rights reserved.