# node JWT鉴权小记
- jsonwebtoken Github地址node-jsonwebtoken
- jwt.io官网 传送门支持很多语言的工具包,也有关于JWT token的生成方式的demo便于理解
TIP
本文小案例使用express框架进行编写
- 我们首先要下载一些包
npm init -y && npm i jsonwebtoken express -S
1
- 下载好工具包我们开始写一个登录服务,本文就不调用数据库了,直接将密码和用户名写在代码里
// index.js
const express = require('express')
var jwt = require('jsonwebtoken');
let app = express()
app.get('/login',(req,res)=>{
if (req.query.name === 'husky' && req.query.pwd === 'husky' ){
var token = jwt.sign({ foo: 'bar' }, secret);
res.json({
token: token,
date:new Date()
})
}else{
res.send(401)
}
})
app.listen(8000)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- 通过调用登录接口,我们可以拿到
token - 这里我们先执行一下看看可以,是否可以获取
JWT token
node index.js
1
我们使用postman来调试

我们获取
token成功,接下来我们来验证这个token是否有效这里我们来写一个接口判断一下,如果在真实项目中,还会有其他逻辑的,这里暂且不考虑
这里我们采用的是
bearer的方式在header中添加的token,因为这个token是放在请求头里面的,所以我们要在请求头里面获取
// index.js
app.get('/verify',(req,res)=>{
try {
let token = req.headers.authorization.split(' ')[1]
var decoded = jwt.verify(token, secret);
res.json(decoded)
} catch (error) {
res.send(401)
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- 这里我们重启一下
node index.js
1
由于在上一步中我们获取到了
token,在这步将会用到,我们postman切换tab,来到Authorization,type我们使用Bearer Token的方式,然后将token粘贴在右侧token的输入框中,点击发送,body就会将上一步的用户信息返给我们
到这里我们就完成了
JWT的验证了