首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Nextjs &自定义Express服务器-无法访问express服务器中使用` `http: true`设置的cookie

Nextjs &自定义Express服务器-无法访问express服务器中使用` `http: true`设置的cookie
EN

Stack Overflow用户
提问于 2021-04-30 09:39:02
回答 2查看 214关注 0票数 0

我正在尝试解析一个cookie,该cookie是通过在我的自定义express服务器上包含属性httpOnly: true来设置的。

现在,在我的NextJs应用程序中,我可以获取服务器端方法getServerSideProps中的cookie,并从那里访问ctx.req.cookies中的cookie。但是,当我(从服务器端方法)对自定义服务器进行fetch api调用时,在自定义服务器api调用中似乎无法访问cookie。

这是我在server.ts中的express配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    // Express Configuration
    app.set('port', process.env.PORT || 3000)
    app.use(cors({ credentials: true, origin: true }))
    app.use(cookieParser())
    app.use(passport.initialize())
    app.use(express.json())
    app.use(express.urlencoded({ extended: true }))

下面是我在自定义快速服务器上设置cookie的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
res.cookie('rtk', refreshTokenJWT.token, {
    httpOnly: true,
})

这是来自getServerSideProps方法的fetch api调用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const response = await fetch('http://localhost:3000/refresh_token', {
    credentials: 'include',
    method: 'POST',
})

也许这是因为我必须使用绝对url进行api调用,当我尝试执行fetch('/refresh_token', ...)时,我得到了错误:TypeError: Only absolute URLs are supported

我可以在request body中发送来自服务器端方法的有效负载,然后在自定义express服务器中处理它,但这似乎不是最好的解决方案。

请帮助,提前谢谢。

编辑:为了澄清,await fetch()发生在nextjs的服务器端方法getServerSideProps中。

按照@O.Jones的建议,在fetch应用程序接口调用中将cookie作为标头发送是可行的,但我的印象是,由于我设置了httpOnly: true,所以这行不通。

EN

回答 2

Stack Overflow用户

发布于 2021-05-09 06:28:23

尽管存在httponly属性,但您必须并被允许解析该服务器响应头。

为什么?因为HttpOnly (owasp link)只是告诉浏览器应该强制实施这种隔离的指令;当您的客户端代码只是另一个node.js进程时,它只是一个响应头。

下面是我在我的作者的单元测试中所做的返回值,听起来与您的需求非常相似;我总是得到两个逗号分隔的单行格式的Cookie,就像我的Koa RESTful应用程序发出的那样(您的快速设置可以像这样用逗号分隔,或者发送两个Set-Cookie,所以如果是后一种情况,您可能需要稍微修改一下。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// raw's format is `koa.sess=YA5N/yI1KhKc/qyylgNduj8vK3e2; path=/; expires=Sun, 09 May 2021 05:17:19 GMT; secure; httponly, koa.sess.sig=8x1BraqjAvKryLx1fvgc0DBu5D4; path=/; expires=Sun, 09 May 2021 05:17:19 GMT; secure; httponly`;
const scp = require('set-cookie-parser');
const cookies = scp.parse(scp.splitCookiesString(headers['set-cookie']));
const next_request_headers = {
    cookie: cookies.map(cookie => cookie.name + '=' + cookie.value).join('; ')
};

我之所以使用npm:set-cookie-parser,是因为cookies are jank和我受够了在过期和分隔符中处理逗号。

次要问题: abs URL

TypeError:仅支持绝对URL

Cookie域规则是在相对URL被规范化为绝对URL之后应用的,所以在我看来,这个次要问题只是关于节点样式的抓取,没有浏览器样式的相对ajax URL所需的隐式服务器/路径,并且不会阻塞与Cookie有关的任何事情。

票数 0
EN

Stack Overflow用户

发布于 2021-05-09 07:00:56

名称为getServerSideProps,,表示它生成的是服务器端

getServerSideProps中执行fetch时,没有任何默认cookies。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67331598

复制
相关文章
【kafka源码】/log_dir_event_notification的LogDir脱机事件通知
这里说的dirLog是 server.properties中配置的log.dir 例如
石臻臻的杂货铺[同名公众号]
2021/12/31
2790
【kafka源码】/log_dir_event_notification的LogDir脱机事件通知
【kafka源码】/log_dir_event_notification的LogDir脱机事件通知
这里说的dirLog是 server.properties中配置的log.dir 例如
石臻臻的杂货铺[同名公众号]
2021/09/26
4340
【kafka源码】/log_dir_event_notification的LogDir脱机事件通知
gevent.hub.BlockingSwitchOutError: Impossible to call blocking function in the event loop callback
最近一个 python 项目中同时用到了 gevent 和 multiprocessing。在优雅退出的实现上,出现了一些预料之外的问题。
饶文津
2021/11/04
1.1K0
Azure 国际版与中国版服务列表对(2020年6月版)
对于选择Azure平台的用户来说,会面临选择国内还是国际版的问题。由于一些原因,由世纪互联运营的中国大陆版Azure无法落地所有的国际版服务。相比几年前,情况已经有了一定的改善。本文列出了国际版和国内版Azure可用服务的对比列表,帮助各位选择。
Edi Wang
2020/06/15
3.2K0
「首席看Event Hub」如何在您的Spring启动应用程序中使用Kafka
在体系结构规划期间选择正确的消息传递系统始终是一个挑战,但这是需要确定的最重要的考虑因素之一。作为一名开发人员,我每天都要编写需要服务大量用户并实时处理大量数据的应用程序。
架构师研究会
2019/10/19
9600
Azure Stack测试Serverless(Azure Functions)
生产环境里的Azure Stack,就不能仅仅将其看作是Hyper-V虚拟化平台、或者分布式存储、软件定义网络这样的产品。否则就暴殄天物。
盆盆
2019/04/24
5330
Azure Stack测试Serverless(Azure Functions)
Azure部署Azure Stack技巧
Azure Stack混合云的POC正式版已经发布了,盆盆已经写了十余篇有关Azure Stack的文章,您可以点击公众号右下方的菜单去阅读,有图有真相!
盆盆
2019/04/24
1.3K0
Azure部署Azure Stack技巧
「首席架构师看Event Hub」Kafka的Spring 深入挖掘 -第1部分
接下来是《如何在您的Spring启动应用程序中使用Apache Kafka》https://www.confluent.io/blog/apache-kafka-spring-boot-application ,这展示了如何开始使用Spring启动和Apache Kafka®,这里我们将更深入地挖掘Apache Kafka项目的Spring提供的一些附加功能。
架构师研究会
2019/10/19
1.5K0
Azure Web连接到Azure MySql Db
这个问题折腾了好一会,简单记录一下。 两种方式: 输入“规则名称”、“起始 IP”和“结束 IP”,然后单击“保存”。 规则名称:Allow-All-IPs 起始 IP:0.0.0.0 结束 IP:2
圣杰
2018/08/01
8400
Azure Web连接到Azure MySql Db
微软云服务爆出 FabricScape 容器逃逸漏洞,攻击者可接管 Linux 集群
作者 | Tina 微软在 Service Fabric (SF) 应用程序托管平台爆出了一个名为 FabricScape 的容器逃逸漏洞,攻击者可利用此漏洞将权限提升到 root,夺取主机节点的控制权,并危及整个 SF Linux 集群。 微软花了近 5 个月时间修复漏洞,目前已将修复程序推送至自动更新通道,未开启该平台自动更新功能的用户需尽快更新。 根据微软的数据,Service Fabric 是一套关键业务应用程序托管平台,目前托管的应用总数已超百万。它还支持许多微软产品,包括但不限于 Azure S
深度学习与Python
2023/03/29
5550
微软云服务爆出 FabricScape 容器逃逸漏洞,攻击者可接管 Linux 集群
torch.hub
Pytorch Hub is a pre-trained model repository designed to facilitate research reproducibility.
狼啸风云
2020/03/03
2K0
javascript坐标:event.x、event.clientX、event.offsetX、event.screenX 用法
clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。
大道七哥
2019/09/10
1.7K0
Azure上一键部署Azure Stack
方便在Azure Global上创建Azure Stack ASDK POC环境。可以访问以下github站点:
盆盆
2019/04/24
5400
Azure上一键部署Azure Stack
【首席架构师看Event Hub】Kafka深挖 -第2部分:Kafka和Spring Cloud Stream
在这个博客系列的第1部分之后,Apache Kafka的Spring——第1部分:错误处理、消息转换和事务支持,在这里的第2部分中,我们将关注另一个增强开发者在Kafka上构建流应用程序时体验的项目:Spring Cloud Stream。
架构师研究会
2019/10/23
2.5K0
【首席架构师看Event Hub】Kafka深挖 -第2部分:Kafka和Spring Cloud Stream
event
有信仰的人不会孤独。——阿列克谢耶维奇 vue官方文档有介绍$event 我们在开发中经常这么写来获取事件 <div class="trigger-me" @click="triggerMe">点我触发</div> 方法: methods: { triggerMe(e, name) { console.log('e: ', e); console.log('name: ', name); } } 然后调用一下 可以看到打印出了事件,如果我们需要传入其他参数,就可以使用$event了
阿超
2022/08/17
5160
event
Pytroch Hub原理分析及离线hub设计考虑
近日,PyTorch 社区发布了一个深度学习工具包 PyTorch Hub,PyTorch Hub 由一个预训练模型仓库组成,可用于提高研究工作的复现性以及新的研究。同时它还内置了对Google Colab的支持,并与Papers With Code集成。
sparkexpert
2019/07/02
1.4K0
Pytroch Hub原理分析及离线hub设计考虑
使用 Azure Policy 定义Azure资源合规性
在云的使用过程中,大多数情况下管理云和使用资源的是两拨拨通的人员。在这种情况下,管理员除了使用RBAC的访问控制来限制不同的用户创建资源的权限外,也希望所有的用户在创建资源的时候都遵循相应的标准,从而满足企业IT运维的合规性。
李珣
2022/05/07
6990
使用 Azure Policy 定义Azure资源合规性
微软正式发布 Stream Analytics 无代码编辑器
在 Ignite 大会 上,微软发布了 Azure Stream Analytics无代码编辑器,这是一个支持拖放的画布,可用于开发流处理场景下的作业,如流处理 ETL、数据摄入、物化数据并公开发布到 Azure Cosmos DB。该无代码编辑器托管在微软的大数据流平台和事件摄入服务 Azure Event Hubs 中。
深度学习与Python
2022/11/28
7360
微软正式发布 Stream Analytics 无代码编辑器
点击加载更多

相似问题

Azure Event Hub -逐条使用消息

16

来自Android的Azure Event Hub授权

11

监视Azure Event Hub分区的大小

112

Azure Event Hub使用者组

118

Event Hub的通用AZURE存储帐户

115
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文