当前位置: 首页 > 面试题库 >

Node.js express-session代理选项有什么作用?

羊舌洛华
2023-03-14
问题内容
app.use(session(
  {
    ...
    proxy: true,
    resave: true,
    saveUninitialized: true
  }
));

我找到了有关快速会话的教程,并且它们具有proxy:true选项。我可以保留为真吗?这是做什么的?包含它更好吗?我知道什么是代理,但是我真的不明白为什么这是一个选择?


问题答案:

该精细的手工状态:

设置安全cookie(通过“ X-Forwarded-Proto”标头)时,请信任反向代理。

这是指客户端不通过反向代理直接连接到您的节点服务器的情况。例如,客户端连接到NGINX
Web服务器,该服务器将请求转发到Node服务器。在这种情况下,NGINX是反向代理。

在反向代理设置中,客户端通过HTTPS与反向代理进行通信也是很常见的,但是该代理使用纯HTTP与Node服务器进行通信。

当您配置会话中间件以使用所谓的 “安全cookie”
(此处记录)时,这是一个问题。会话中间件不允许这些cookie通过纯HTTP发送,但 要求
它们通过HTTPS发送。如果您的反向代理通过HTTP与Node服务器通信,则意味着您将无法使用安全cookie。

为了解决此问题,反向代理会将X-Forwarded- Proto报头设置为其转发的每个请求。它告诉节点服务器请求的原始协议是什么,而不管反向代理连接到节点服务器的方式如何。

使用proxy会话中间件的选项,您要告诉它信任此标头,并允许通过X-Forwarded-Proto设置为的纯HTTP发送安全cookie
https

如果要直接公开Node服务器(以便客户端连接到该服务器),则应将此选项设置为false,因为否则,客户端可能会欺骗您的服务器(通过发送X-Forwarded- Proto标头本身)来认为连接是安全的。但是,如果您仍然不使用安全cookie,那将不会有什么关系。



 类似资料:
  • 问题内容: 我可以看到-prune 无法正常工作。我猜选项应该选择(或查找)除名称正确的文件以外的所有文件? 还是我理解错误? 我执行的命令: 期望值 :选择当前目录()中除名称* efence以外的所有文件。 请帮我理解 问题答案: 尝试 如果未指定其他选项,则该选项 会 打印匹配的文件(但是,它仍然阻止递归到匹配的目录中)。 编辑添加说明: 表达式区分和。来自: 该表达式由选项(影响整体操作而

  • 本文向大家介绍组件中写name选项有什么作用?相关面试题,主要包含被问及组件中写name选项有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 项目使用keep-alive时,可搭配组件name进行缓存过滤 DOM做递归组件时需要调用自身name vue-devtools调试工具里显示的组见名称是由vue中组件name决定的

  • 问题内容: 什么意思 问题答案: 指定内存分配池的最大大小(以字节为单位)。此值必须是大于2 MB的1024的倍数。追加字母k或K表示千字节,或者追加m或M表示兆字节。默认值为64MB。在Solaris 7和Solaris 8 SPARC平台上,此值的上限约为4000m,在Solaris 2.6和x86平台上,该值的上限约为2000m(减去开销)。例子: 因此,简单来说,就是将Java堆内存从可用

  • 问题内容: javac 的(局部变量调试信息)选项究竟提供了什么作为输出。 做一些测试,没有附加信息(例如-g:source,lines和-g:source,lines,vars之间没有区别。 请问有人举了这些局部变量调试信息的例子吗? 问题答案: 从javadocs: -g生成所有调试信息,包括局部变量。默认情况下,仅生成行号和源文件信息。 这在编译时不会产生可见的输出,但是会在运行时用于调试。

  • 问题内容: 我在其中找到了以下代码,并且想知道空语句在Go中的作用。 问题答案: 空语句将永远 阻塞 。它类似于空语句。 在大多数(全部?)受支持的Go架构上,空选择将产生CPU。空的for循环不会,即它将在100%CPU上“旋转”。

  • 问题内容: 它在这里说-Xss用于“设置线程堆栈大小”,这到底是什么意思?谁能帮我理解这一点? 问题答案: Java应用程序中的每个线程都有其自己的堆栈。堆栈用于保存返回地址,函数/方法调用参数等。因此,如果线程倾向于通过递归算法处理大型结构,则所有这些返回地址等都需要大型堆栈。使用SunJVM,可以通过该参数设置该大小。