2024年6月11日发(作者:)
jsonwebtoken使用
jsonwebtoken是一个用于生成、验证和解析JSON Web Token(JWT)
的JavaScript库。JWT是一种开放的标准,用于安全的传输信息,其中
包含一组被加密的声明。这些Token可以在发送请求时被包含在请求头或
请求参数中,用于验证用户身份和授权访问资源。
## 1. 安装jsonwebtoken
要使用jsonwebtoken,首先需要将它安装到您的项目中。可以使用
npm或yarn进行安装。
使用npm安装jsonwebtoken:
```
npm install jsonwebtoken
```
使用yarn安装jsonwebtoken:
```
yarn add jsonwebtoken
```
##2.生成JWT
要生成一个JWT,需要提供一个payload(负载)和一个密钥。负载
是一个包含要传输的信息的对象,可以包含任意的自定义声明。密钥是用
于对负载进行数字签名的字符串。
下面是一个生成JWT的示例代码:
```javascript
const jwt = require('jsonwebtoken');
const payload =
userId: 1,
username: '',
};
const secretKey = 'mySecretKey';
const token = (payload, secretKey);
(token);
```
在上面的例子中,我们使用`(`方法生成JWT。它的第一个
参数是负载对象,第二个参数是用于数字签名的密钥。生成的JWT将被打
印在控制台上。
##3.验证JWT
要验证一个JWT,需要提供它和用于签名的密钥。验证过程包括检查
签名是否有效,并检查声明是否匹配。
下面是一个验证JWT的示例代码:
```javascript
const jwt = require('jsonwebtoken');
const token =
'1c2VySWQiOjEsInVzZXJuYW
jFuBxKeIjaXcZ4B
aWof1ORqmXcao-iUJ0gT1E';
const secretKey = 'mySecretKey';
(token, secretKey, (err, decoded) =>
if (err)
('Invalid token');
} else
(decoded);
}
});
```
在上面的例子中,我们使用`(`方法验证JWT。它的第一
个参数是要验证的JWT,第二个参数是用于签名的密钥。如果JWT无效,
将会在控制台上输出"Invalid token",否则将打印解码后的JWT负载对
象。
##4.解析JWT
要解析一个JWT,只需要提供它并调用`(`方法即可。这
个过程是无需验证签名的简单解码操作。
下面是一个解析JWT的示例代码:
```javascript
const jwt = require('jsonwebtoken');
const token =
'1c2VySWQiOjEsInVzZXJuYW
jFuBxKeIjaXcZ4B
aWof1ORqmXcao-iUJ0gT1E';
const decoded = (token);
(decoded);
```
在上面的例子中,我们使用`(`方法解析JWT。它的参数
是要解析的JWT。解析结果将被打印在控制台上。
##选项
- `expiresIn`:设置Token的有效时间,可以是一个表示时间段的
字符串(例如:"2 days","10h"),或一个整数表示秒数。
- `audience`:设置接收者的值。
- `issuer`:设置发行者的值。
- `subject`:设置主题的值。
- `notBefore`:设置生效时间,Token在此之前无效。
- `clockTolerance`:设置验证时允许的时间偏差。
这些选项可以在生成Token时作为第三个参数传递给`(`方
法,也可以在验证Token时作为第二个参数传递给`(`方法。


发布评论