简介
jws-express 是一个 Node.js 应用开发的 npm 包,主要用于对符合 JSON Web Token(JWT)标准的数据进行加密和解密,并用于 Express 框架中的路由验证。
安装
通过 npm 包管理工具可以快速安装该包:
npm install jws-express
使用
生成 JWT Token
使用 jws-express 提供的 sign 函数可以生成 JWT Token。
const jws = require("jws-express"); const payload = { userId: 123, name: "Alice" }; const token = jws.sign(payload, "mySecretKey", { expiresIn: "1h" }); console.log(token); // 输出类似如下字符串: // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEyMywibmFtZSI6IkFsaWNlIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyNDI2MjJ9.5G7CdE8ysfBts83Pq3f9hLpP8gWkGnC1H2i1w-tzRb8
参数说明:
payload
: 要加密的数据,必须是一个对象。mySecretKey
: 用于加密的密钥,可以是字符串或者 Buffer 类型。expiresIn
: 设置 Token 的过期时间,必须是秒数或者描述过期时间的字符串,例如 "1h" 表示一小时后过期。
解密 JWT Token
使用 jws-express 提供的 verify 函数可以解密 JWT Token。
-- -------------------- ---- ------- ----- --- - ----------------------- ----- ----- - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----- ------- - ----------------- --------------- --------------------- -- ------- -- - -- ------- - ---- -------- ---- ----- -- -- -------- - ------- ---- ----- -------- ---- ----------- ---- ---------- -- -- ---------- --------------------------------------------- -- -
参数说明:
token
: 要解密的 JWT Token。mySecretKey
: 用于加密的密钥,必须与生成 Token 时使用的密钥相同。
验证 JWT Token
使用 jws-express 提供的 middleware 函数可以在 Express 路由中对 JWT Token 进行验证。示例代码如下:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ----------------------- ----- --- - ---------- -- --------- -------- ----------------- ------------------------------ -------- ----- ---- - ------------------- - -- -----------------
在请求 http://localhost:3000/api/protected
时,如果请求头中包含了正确的 JWT Token,那么服务器会返回包含用户信息的 JSON 对象;如果 Token 不正确或者已经过期,服务器会返回 401 错误。
总结
jws-express 可以方便地生成、解密和验证 JWT Token,减少了开发工作量,同时也有助于增强应用程序的安全性。在实际项目开发过程中,应该根据具体需求选择合适的加密算法和密钥,以确保数据的隐私。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cdf81e8991b448e68fc