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