构建 web 应用程序时,安全地管理用户身份验证非常重要。两个重要的库是:
bcryptjs – 用于安全地散列和比较密码。
json web 令牌 – 用于签署和验证 jwt 令牌以进行用户身份验证。
我们将介绍如何在 node.js 应用程序中实现这两个库,以实现安全密码管理和基于令牌的身份验证。
如何:在 node.js 中使用 bcryptjs 和 jsonwebtoken
构建 web 应用程序时,安全地管理用户身份验证非常重要。两个重要的库是:
安装包
npm 安装 bcryptjs
现在让我向您展示如何施展魔法。
同样的旧的,同样的旧的,创建一个新的js文件并永远记住需要该包。
const { hashsync, comparesync } = require("bcryptjs"); module.exports = { hashpassword: (password) => hashsync(password), comparepassword: (password, hashed) => comparesync(password, hashed };
工作原理:
hashsync(password):对用户密码进行哈希处理。
comparesync(password, hashedpassword):将纯文本密码与哈希版本进行比较以验证用户登录。
安装软件包:
npm 安装 jsonwebtoken
jsonwebtoken 允许我们为每个经过身份验证的用户创建安全令牌 (jwt)。该令牌被发送到客户端,并可用于在后续请求中对用户进行身份验证。
const { sign, verify } = require('jsonwebtoken'); const secretkey = "yoursecretkey"; // Secret key to sign the token module.exports = { logToken: (payload) => log(payload, secretkey), // Create JWT token verifyToken: (token) => verify(token, secretkey) // Verify JWT token };
工作原理:
signtoken(payload):使用密钥创建具有给定有效负载(例如用户数据)的签名 jwt。
verifytoken(token):使用相同的密钥验证 jwt 令牌的真实性。