如何在同构应用程序中通过节点提取传递请求cookie
How to pass Request cookies through node-fetch in isomorphic app?
我正试图使用React、Express和同构获取(基于客户端上的whatwg-fetch
和服务器上的node-fetch
),从这个常见的样板中构建同构项目。我使用cookie作为我的访问令牌,前端的credentials: 'same-origin'
将其发送到GraphQL,效果非常好。
问题是,我不能在服务器端使用相同的解决方案——node-fetch
只是不支持从盒子中使用XMLHttpRequest cookie。我的获取请求在路由器的几个抽象层下,所以我不能只使用req
中的cookie值。
这是我的server.js
代码(完整版):
server.get('*', async (req, res, next) => {
try {
// some presettings here..
await Router.dispatch({ path: req.path, query: req.query, context }, (state, component) => {
data.body = ReactDOM.renderToString(component);
});
res.send(template(data));
} catch (err) {
next(err);
}
});
和Route的index.js
(完整版):
export const action = async (state) => {
const response = await fetch('/graphql?query={me{id,email}}', {
credentials: 'same-origin',
});
const { data } = await response.json();
// ...
return <Login title={title} me={data.me} />;
};
如何将令牌从server.js传递到获取模块?或者,也许还有一些更好的决定?
首先,我希望您现在已经找到了答案!
其次,cookie实际上只是标头。如果需要发送cookie来授权服务器端请求,则始终可以创建cookie值所需的字符串,并将其作为标头发送。
举个例子,看看这个服务器端node-fetch
包装器是如何将保存的cookie附加到出站请求的:https://github.com/valeriangalliat/fetch-cookie/blob/master/index.js#L17
相关文章:
- 节点导出返回一个空对象
- 可以前端maven插件使用节点,npm已经安装
- 在jstree中,如何将指定的节点集中到大型树上
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从模块链中调用函数.导出到节点中
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- 如何在同构应用程序中通过节点提取传递请求cookie
- 使用R从xml节点提取javascript语法
- 如何改进javascript中的提取xml节点
- 在节点.js中使用图形魔术提取 gif 帧
- 使用 Javascript 提取整个 XML 节点内容
- NOAA 天气数据的 Javascript XML 解析 - 从子节点提取数据时出现问题
- 如何使用d3.js提取所选节点的json数据
- 根据提取的内部文本对节点进行排序,并在jQuery中维护索引关联或破解
- 给定提取的组合文本字符串中的偏移量,如何确定包含节点和偏移量
- 操作DOM元素以提取一些节点并删除其他节点
- Json-节点RED提取
- 正在从节点中的请求中提取JSON数据