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时作为第二个参数传递给`(`方法。