构建 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 令牌的真实性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3