【发布时间】:2021-04-09 19:01:12
【问题描述】:
我最近刚刚从使用 express 与 apollo 服务器切换到仅使用 apollo 服务器,因为订阅设置似乎更最新且更易于设置。我现在遇到的问题是我正在使用我们的刷新令牌保存一个 cookie 用于登录并在注销时清除 cookie。这在我使用 express 时有效。
const token = context.req.cookies[process.env.REFRESH_TOKEN_NAME!];
context.res.status(401);
由于从 express/apollo 切换到仅 apollo 服务器,即使我在 apollo 服务器上公开 req/res 上下文,我也无法访问 req.cookies。
我最终切换到这个(这很hacky)来获取cookie。
const header = context.req.headers.cookie
var cookies = header.split(/[;] */).reduce(function(result: any, pairStr: any) {
var arr = pairStr.split('=');
if (arr.length === 2) { result[arr[0]] = arr[1]; }
return result;
}, {});
这可行,但现在我不知道如何删除 cookie。用快递我在做
context.res.clearCookie(process.env.REFRESH_TOKEN_NAME!);
由于 res.clearCookie 不存在,我现在不确定如何清除 cookie。
【问题讨论】:
标签: node.js cookies graphql apollo apollo-server