注销后 Vercel cookie 不会被删除

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

我已在 Vercel 中部署了 MERN 应用程序。我遇到注销问题。注销后,如果刷新,我会再次登录。 cookie 没有被删除,但它在本地环境中被删除。

res.cookie('token', '', {
        expires: new Date(0),
        httpOnly: true,
        secure: true,
        sameSite: 'None',
       
    });

    res.status(200).json({
        success: true,
        message: "logged out"
    })

我使用 null 代替“”。

按照chatGPT的建议也尝试过这个。

exports.logout = catchAsyncError(async (req, res, next) => {

    res.cookie('token', '', {
        expires: new Date(0),
        httpOnly: true,
        secure: true,
        sameSite: 'None',
        domain: process.env.COOKIE_DOMAIN,
        path: '/'
    });

    res.status(200).json({
        success: true,
        message: "logged out"
    })
})

但没有任何效果

node.js cookies render vercel mern
1个回答
0
投票

看起来第二个片段是将 Cookie 或会话设置为新会话,而不是清除现有会话。

res.clearCookie(name, [ options ])

Name:要清除的cookie的名称。

Options:它是一个可以具有各种属性的对象,如域、编码、路径、安全等。

设置cookie

res.cookie('mytoken', '', {
    expires: new Date(0),
    httpOnly: true,
    secure: true,
    sameSite: 'None',
    domain :process.env.COOKIE_DOMAIN
});

res.status(200).json({
    success: true,
    message: "logged out"
})

清除cookie

res.clearCookie('mytoken', domain :'process.env.COOKIE_DOMAIN
});
© www.soinside.com 2019 - 2024. All rights reserved.