什么是 JWT?
JWT(JSON Web Token)是一种用于标识认证信息的格式。它是由三段信息组成,分别是 Header、Payload 和 Signature,其中 Header 和 Payload 部分使用 Base64 进行编码,Signature 是使用 Base64 函数和密钥对前两部分生成的字符串。
JWT 的使用场景
JWT 可以用于对用户进行认证,实现无状态的身份验证,也可以被用于 Web 应用程序间的信任关系。具有相对安全、易于传输、可扩展、标准化等特点。
JWT 的实现
首先,我们需要安装用于生成 JWT 的依赖包 jsonwebtoken,使用以下命令:
npm install jsonwebtoken --save
1. 生成 JWT
Node.js 中生成 JWT 的方法如下:
-- -------------------- ---- ------- ----- --- - ------------------------ ----- --------- - ----------- -- -- --- ----- ----- - ---------- ----- - ------- --------- --------- -------- -- ---- --------------------- - ----- - -- - -- - -- -- ------ -- ----------- ---------------- --- -------------
在这里,我们生成了一个 JWT,其中包含了用户 ID 和用户名的信息,以及 JWT 的过期时间。生成 JWT 的方法是 jwt.sign(),第一个参数传递的是包含了需要在 JWT 中携带的数据和过期时间的 JSON 对象,第二个参数是我们设置的密钥。
2. 验证 JWT
在实际使用 JWT 进行身份验证的时候,需要先将前端传递的 JWT 解析出来,再与数据库中存储的数据进行比较,从而验证 JWT 是否有效。具体的代码实现如下:
-- -------------------- ---- ------- -- -- --- ----- ----------- - ------- --------- -- - ----------------- ---------- ----- -------- -- - -- ----- - --------------------- ------ - ---- - -------------- --------- - --- -- -- ---- --- ---- ------------------ ------- -------- -- - -- ------- - ---------------- ---------------- - ---- - ---------------- ---------------------------------------- - ---
3. 设置 JWT 头部信息
JWT 头部信息中需要设置算法名称和密钥等信息,Node.js 中设置 JWT 头部信息的方法如下:
-- -------------------- ---- ------- ----- --------- - - ---- -------- -- ---- ---- ------ -- -- -- ----- ----- - --------- - ----- - ------- --------- --------- -------- -- ---- --------------------- - ----- - -- - -- - -- -- ------ -- ---------- - ------- ---------- -- -- --- ---- -- -- ---------------- --- -------------
总结
本文介绍了 JWT 的基本概念、使用场景、实现方法以及在 Node.js 中使用 JWT 进行用户认证的方法。通过本文的学习,我们可以了解到如何生成 JWT、验证 JWT,并设置 JWT 的头部信息。希望本文对大家有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6455f70a968c7c53b0949d79