【发布时间】:2021-02-02 18:43:04
【问题描述】:
我正在继承一个后端 Express API 和一个前端 React 应用程序。
目前我在我的POST /login API 中使用cookie-parser,如下所示:
res.cookie('something', 'abc123', {
maxAge: COOKIE_MAX_AGE
});
在我的前端应用程序中,有一个检查身份验证令牌是否存在的功能:
export function isAuthCookiePresent() {
console.log('ALL COOKIES:', cookies.get());
return (
cookies.get(AUTH_COOKIE_NAME) && cookies.get(AUTH_COOKIE_NAME) !== null
);
}
正如预期的那样,我在控制台日志中看到了{ something: 'abc123' }。
但是,当我尝试在 Vercel (https://vercel.com/) 中使用自动部署的分支登录时,cookie 丢失了。
我的印象是 cookie 应该设置在前端?但在代码中,cookie 是在后端设置的。而且我在将其传递到前端的代码中看不到任何内容。我以为我会在前端找到类似“成功登录后,执行cookies.set("x-auth-token", res.body.token)”的东西
对我来说很奇怪,它完全可以在本地工作。有人介意解释这是如何工作的吗?我认为cookies存储在客户端的浏览器中。但如果这是真的,为什么 cookie-parser 甚至存在于 express 中,为什么它被用于服务器端?
【问题讨论】:
标签: javascript node.js cookies