ZBLOG

express 使用 jwt

JWT(JSON Web Token)是一种用于对信息进行安全传输的开放标准。JWT 由三部分组成,分别为:

  • header:包含加密算法和 token 类型等信息。
  • payload:存储要传递的信息,比如用户 ID、用户名等。
  • signature:使用私钥签名 header 和 payload,并且可以防止 payload 被篡改。

下面演示如何在 Express 中使用 JWT。

首先,需要安装 jwt 和 jsonwebtoken 模块:

  1. npm install jwt jsonwebtoken

然后在代码中引入:

  1. const jwt = require('jsonwebtoken');

生成 token 的方法如下:

  1. const payload = { id: 1, name: 'John Doe' };
  2. const secret = 'my_secret_key';
  3. const token = jwt.sign(payload, secret);

其中,payload 是要传递的信息,secret 是用于生成签名的秘钥。生成的 token 可以通过响应头或者响应体返回给客户端。

验证 token 的方法如下:

  1. const secret = 'my_secret_key';
  2. const token = req.headers.authorization.split(' ')[1];
  3. jwt.verify(token, secret, (err, decoded) => {
  4. if (err) {
  5. return res.status(401).json({ message: 'Invalid token' });
  6. }
  7. req.user = decoded;
  8. next();
  9. });

其中,从请求头中获取 token,然后使用 verify 方法验证签名是否正确。如果验证失败,则返回错误信息;如果验证成功,则将解码后的信息存储到请求对象中,并调用 next() 方法继续处理请求。在后续的请求处理中,可以使用 req.user 获取存储的用户信息。

以上就是在 Express 中使用 JWT 的基本方法。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=334

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?