Sep*_*ppo 9 authentication authorization http-headers jwt bearer-token
在 React 和 Node 之间构建基于 JWT 的身份验证系统时,我看到了不同的解决方案。有很多示例,其中许多使用不同的标头。
标头有什么区别
以及什么时候应该使用它们?例如,在此答案中解释了将使用授权。然而,正如链接到 此处的另一个答案中所述,它指出“授权标头通常(但并非总是)在用户代理首次尝试请求没有凭据的受保护资源之后发送。”
由此得出的结论是,当在登录后发出对某些受保护页面的请求时,不应立即使用授权标头,只有在第一次被拒绝后才应使用授权标头。
因此,进行检查的“正确”方法是什么?使用哪种协议?例如,当使用客户端 -> 服务器登录时,是否应该在标头中以 x-auth-token 开头,然后使用 x-access-token 进行请求,如果失败则使用授权令牌?
我知道,通常只使用其中一个,并且在许多情况下,授权似乎是正确的方法,不仅在第一次尝试失败后,还在第一次尝试中添加了授权。无论如何,我都可以使应用程序正常工作。
但是出于好奇并为了正确编码,这些有什么区别,是否还有更多可以使用的,以及进行身份验证过程的“正确方法”是什么?
正如 RFC 7235 中所预见的那样,授权是客户端用于对 HTTP 中的对等方进行身份验证的主要标头。
[...]
请注意,作为
X-Auth-Token
未注册的标头,它不受正式规范的约束,并且其存在和内容始终与相应的应用程序相关联。不能对此做出一般假设。
在另一个答案中:
客户端发送访问令牌(JWT 或任何其他令牌)的最佳 HTTP 标头是
Authorization
具有 Bearer 身份验证方案的标头。
因此,我相信“国际惯例”(如果可以的话)似乎是使用标Authorization
头,因为它x-access-token
不是标准的且未注册的,所以我猜测使用已知的标准对于代码可读性更好。
此外,甚至 JWT 背后的团队也建议使用该Authorization: Bearer <token>
方案:
每当用户想要访问受保护的路由或资源时,用户代理应该发送 JWT,通常使用承载模式在授权标头中发送。
但是,我理解您的困惑:互联网上的一些教程似乎正在使用 来x-access-token
发送 JWT 令牌。
编辑我认为您可能会发现阅读有关 HTTP 身份验证 - 身份验证方案的相关 MDN 文档很有用。
归档时间: |
|
查看次数: |
10361 次 |
最近记录: |