用户认证之jsonwebtoken
基本原理:
1、客户端试用账号和密码请求登录。
2、登录成功后服务器使用签名密钥生成jwt,并返回jwt给客户端。
3、客户端再次向服务端请求其他接口时,请求头须携带jwt。
4、服务器接收到jwt后验证签名是否有效,对客户端做出相应的响应。
1、安装 jsonwebtoken
npm install jsonwebtoken
1
2、引入 jsonwebtoken
const jwt = require('jsonwebtoken')
1
3、生成 token
例如:
let token = jwt.sign({
name: '张三',
password: '123456'
}, privatekey, { // privatekey,即密钥
expiresIn: 3600 // 表示token多久失效,如果是整数则表示多少秒后过期,此处表示1小时过期,也可以使用'1h'
})
1
2
3
4
5
6
2
3
4
5
6
4、验证 token
jwt.verify(token, privatekey, (err, data) => {
if (err) {
console.log('err')
} else {
/*
data表示一个对象,解析后格式如:
{
user_name: '心欲无痕',
password: '123456',
iat: 1650526332, // iat表示签发时间
exp: 1650529932 // exp表示过期时间
}
*/
console.log('data', data) // data是一个对象,
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ps:如果token解释失败或者已过期,都会返回err,只有正确解析出数据才会返回data。
编辑 (opens new window)
上次更新: 7/2/2024, 11:06:45 AM