const authHeader = req.headers["authorization"];
如果这个问题看起来很基本,我很抱歉,但我很好奇为什么我们使用 [“授权”] 而不仅仅是 .authorization
我做了一些研究,发现这与下/上壳有关,但我发现的答案并不适合我。我想知道是否有人有更好的解释。
其原因主要涉及 JavaScript 对象如何处理属性名称,特别是当这些名称包含特殊字符或空格时。
在 JavaScript 中,您可以通过两种方式访问对象属性:点表示法和方括号表示法。括号表示法
object["property"]
更加灵活,允许访问名称包含特殊字符或空格的属性。
根据 HTTP 规范,HTTP 标头不区分大小写。这意味着
Authorization
、authorization
或 AUTHORIZATION
应被同等对待。使用 req.headers["authorization"]
可确保您显式访问名为授权的属性,无论它的大小写如何或是否包含特殊字符。