某一个业务需求,需要拿到我的用户信息,后端不直接返回的情况下。我需要对token信息解码拿到该信息,对jsonwebtoken进行一下简单学习,以此记录。
jsonwebtoken:
jsonwebtoken
是一个 Node.js 中用于创建和验证 JSON Web Tokens (JWT) 的库。JWT是一种紧凑、URL安全的令牌,通常用于在网络应用中进行身份验证和授权。jsonwebtoken
库使得在 Node.js 中处理JWT变得非常方便。
JWT 的原理是,服务器认证以后,生成一个 JSON 对象。它由三部分组成:Header(头部)、Payload(负载)和 Signature(签名)。Header 和 Payload 被 base64 编码,然后通过点号连接在一起,再加上使用密钥进行签名,最终形成JWT。
{ "姓名": "张三", "角色": "管理员" }
用户与服务端通信的时候,都要发回这个 JSON 对象。服务器完全只靠这个对象认定用户身份。为了防止用户篡改数据,服务器在生成这个对象的时候,会加上签名,为一串编码。而jsonwebtoken则可以对编码解码成我们的对象。
怎么使用:
安装:
npm install jsonwebtoken
yarn add jsonwebtoken
在代码中使用:
const jwt = require('jsonwebtoken');
// 示例的 JWT token(实际情况下,从服务端获取)
const token = 'your_jwt_token_here';
// 解码 JWT 负载
const decodedPayload = jwt.decode(token);
// 输出解码后的负载
console.log('解码后的负载:', decodedPayload);
相关工具:
-
jsonwebtoken.io 是一个在线的 JWT 编码和解码工具,可以用来快速验证你的JWT。
-
jsonwebtoken-cli:
jsonwebtoken-cli
是一个命令行工具,可以用来在终端中生成和验证 JWT。
npm install -g jsonwebtoken-cli
这些工具和库可以帮助你轻松地处理JWT,从而实现在应用中进行身份验证和授权。记得在生产环境中保护好密钥,因为密钥的安全性直接关系到JWT的安全性。