我正在创建一个网站,我知道最好的身份验证是通过 JWT,但我不喜欢框架,因为我喜欢深入研究代码并理解我文件中的所有代码。因此,我在问是否有人在纯 Node.js 中做过它或类似的事情,是否可以给我一个关于如何做到这一点的解释。
谢谢
我正在创建一个网站,我知道最好的身份验证是通过 JWT,但我不喜欢框架,因为我喜欢深入研究代码并理解我文件中的所有代码。因此,我在问是否有人在纯 Node.js 中做过它或类似的事情,是否可以给我一个关于如何做到这一点的解释。
谢谢
是的,这当然是可能的,只要考虑框架是如何制作的。没有魔法,只有知识和大量的javascript代码。
您可以在 Github 上找到大多数框架的来源并在那里进行研究。
第一步,您应该熟悉 JWT 的基础知识,例如借助本介绍和阅读RFC7519。
您会发现,JWT 基本上由 base64url 编码的 JSON 对象和 base64url 编码的签名组成。
最简单的签名算法是 HS256(HMAC-SHA256)。
在jwt.io 调试器窗口中,您会在右栏中看到用于创建 JWT 签名的伪代码:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
所以基本上你需要学习:
有了这个,你已经有了一个基本的 JWT 框架,可以让你创建一个签名的令牌并验证签名。
在下一步中,您可以添加“功能”,例如
您可以使用jwt.io 调试器来检查您的令牌是否可以被解码和验证。