基本使用
npm install express-jwt
var expressJWT = require('express-jwt');
var secretOrPrivateKey = "heo"
app.use(expressJWT({
secret: secretOrPrivateKey
}).unless({
path: ['/login'] //除了这个地址,其他的URL都需要验证
}));
7 版本之后写法有改动:
const { expressjwt:jwt } = require('express-jwt');
// 验证 token
app.use(jwt({
secret: md5(process.env.JWT_SECRET),
algorithms: ['HS256']
}).unless({
path: [
{url: '/api/admin/login', methods: ['POST']},
]
}));
express-jwt 和 jwt 的区别
express-jwt是对jsonwebtoken进行了封装,在验证策略方面做了很多扩展。
通常可以使用 jwt 进行 token 的生成,使用 express-jwt 进行 token 的验证。
生成 token:
const jwt = require('jsonwebtoken');
// 生成 token
const token = jwt.sign({
id: data.id,
loginId: data.loginId,
name: data.name
}, md5(process.env.JWT_SECRET),{
expiresIn: loginPeriod * 60 * 60 * 24
})
验证 token:
const { expressjwt:jwt } = require('express-jwt');
// 验证 token
app.use(jwt({
secret: md5(process.env.JWT_SECRET),
algorithms: ['HS256']
}).unless({
path: [
{url: '/api/admin/login', methods: ['POST']},
]
}));