Skip to content
索引

sExpress使用JWT

JWT属于token机制的一种

安装JWT

sh
npm i jsonwebtoken express-jwt
npm i jsonwebtoken express-jwt
  • jsonwebtoken用于生成JWT字符串
  • express-jwt用于将JWT字符串解析还原成JSON对象

导入JWT相关包

js
const jwt = require('jsonwebtoken')
const expressJWT = require('express-jwt')
const jwt = require('jsonwebtoken')
const expressJWT = require('express-jwt')

定义secret密钥

为了保证JWT字符串的安全性,防止JWT字符串在网络传输过程中被别人破解,我们需要专门定义一个用于加密和解密的secret密钥:

  1. 当生成JWT字符串的时候,需要使用secret密钥对用户的信息进行加密,最终得到加密好的JWT字符串
  2. 当把JWT字符串解析还原成JSON对象的时候,需要使用secret密钥进行解密
js
// secretKey 密钥的本质就是一个字符串
const secretKet = "zhuzhuxia"
// secretKey 密钥的本质就是一个字符串
const secretKet = "zhuzhuxia"

生成JWT字符串

调用jsonwebtoken包提供的sign()方法,将用户的信息加密成JWT字符串,发送给客户端:

  • 参数一,用户的信息对象
  • 参数二,加密的密钥
  • 参数三,配置对象,可以配置当前token的有效期
js
jwt.sign({ username: userinfo.username }, secretKet, { expiresIn: "30s" })
jwt.sign({ username: userinfo.username }, secretKet, { expiresIn: "30s" })

JWT还原成JSON

客户端每次在访问那些有权限的接口的时候,都需要主动通过请求头中的Authorization字段,将Token字符串发送到服务器进行身份验证

此时,服务器可以通过express-jwt这个中间件,自动将客户端发送过来的Token解析还原成JSON对象



Released under the MIT License.