什么是 jwt-valid?
jwt-valid 是一个用于验证 JSON Web Token(JWT)的 npm 包,它可以方便地从 JWT 中提取出 payload 并验证 signature,确保 token 的合法性。
安装
首先,确保你已经安装了 Node.js 和 npm。然后,在命令行中输入以下命令安装 jwt-valid:
npm install jwt-valid
使用方法
首先,需要导入 jwt-valid:
const jwtValid = require('jwt-valid');
然后,需要创建一个验证配置对象:
const config = { secret: 'yourJWTSecret', audience: 'yourJWTaudience', issuer: 'yourJWTissuer', algorithms: ['HS256'] };
这个配置对象包含以下属性:
secret
:JWT 的 secret。audience
:JWT 的 audience。issuer
:JWT 的 issuer。algorithms
:JWT 使用的加密算法。
接着,需要验证 JWT:
-- -------------------- ---- ------- ----- ----- - --------------- --------------- ------- ----- -------- -- - -- ----- - -- --- --- ------------------- - ---- - -- --- ---------- - --- ------ --------------------- - ---
如果 JWT 合法,payload
会包含 JWT 中的数据。例如:
{ id: '1234567890', name: 'Alice', iat: 1516239022 }
如果 JWT 不合法,err
将包含错误信息。例如:
{ message: 'jwt expired', expiredAt: '2022-12-20T18:51:39.000Z' }
示例代码
以下示例代码演示了如何生成 JWT 并使用 jwt-valid 验证 JWT:
-- -------------------- ---- ------- ----- --- - ------------------------ ----- -------- - --------------------- -- -- --- ----- ----- - ---------- --- ------------- ----- ------- -- ---------------- - ---------- ----- --------- ------------------ ------- --------------- --- ------------------- -- -- --- ----- ------ - - ------- ---------------- --------- ------------------ ------- ---------------- ----------- --------- - --------------- ------- ----- -------- -- - -- ----- - ------------------- - ---- - --------------------- - ---
以上代码会输出以下内容:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoiQWxpY2UiLCJpYXQiOjE2MTYxMjMxNTAsImV4cCI6MTYxNjEyNzE1MCwiYXVkIjoieW91ckpXVGF1ZGllbmRlIiwiaXNzIjoieW91cklzc3VlciJ9.lta8OvJ6Uyrf6U4aSuWXS15HpUvO5OGNdrLkFEO5Wc8 { id: '1234567890', name: 'Alice', iat: 1616123150, exp: 1616127150, aud: 'yourJWTaudience', iss: 'yourJWTissuer' }
总结
使用 jwt-valid 可以方便地验证 JWT,代码简单易懂。在实际应用中,JWT 可以用于身份验证、授权等场景,它的安全性与使用方便性得到了广泛的认可。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600559e381e8991b448d77f8