如何向节点 js 用户身份验证项目添加前端和后端验证?
How can i add a front end and backend validation to a node js user authentication project?
我最近做了一个带有一些用户身份验证表单的node js ejs项目。有没有一种特殊的方法可以为前端和后端添加验证。我如何在 get 和 post 方法之间传递我的数据值。 ?是否可以这样做。请帮忙谢谢
前端登录验证
您不应在前端验证或验证任何内容。也就是说,您可以使用 HTML 属性来帮助减轻后端的一些负担,并防止人们在输入密码时看到密码。
<input type="password" class="input" name="password" autocomplete="off" placeholder="Enter password" required>
在此示例中,密码类型属性是告诉 HTML 它应该期望的输入类型的关键。添加 required 将防止用户将该字段留空,因此它可以帮助减轻您的后端负担并添加另一个级别的非常基本的安全性(这绝不是必要的安全输入)。有关密码输入类型的更多信息,请查看 MDN 条目:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password
Node JS 的后端登录验证
您可以在后端使用路由 (routes.js
) 文件来为不同的页面提供服务,并通过验证器传递信息。确定登录数据是否有效应该始终在连接到数据库的单独控制器文件中完成,例如 MySQL。验证或清理用户输入应始终在此文件中完成,但特定于您使用的数据库类型。通常这涉及转义用户输入或在处理数据库时使用准备好的语句。
然而,从更一般的意义上讲,我认为最好的 Node JS 验证器是 express-validator(尤其是如果您已经在后端使用 express 时)。通过创建自己的中间件并使用现有的中间件,您可以控制在客户端和服务器之间传递的内容。这允许您控制您的服务器是继续 get/post 请求还是应该发送错误页面。
要在您的项目中包含 express-validator,只需使用 npm 安装包并使用以下命令将其包含在您的文件中:
const { body } = require("express-validator");
或者如果您需要验证作为 url 参数传递的数据:
const { query } = require("express-validator");
此验证器用于在 routes.js
文件中输入密码的示例:
router.post("/login",
[
body("password", "The Password must be of minimum 4 characters length")
.notEmpty()
.trim()
.isLength({ min: 4 }),
],
login
);
此示例处理登录 url 端点,如果在此端点发出 post 请求,则使用 class 名称验证 ejs/html 主体元素“密码”使用标准的快速验证方法。有关如何使用快速验证器的更多示例和信息,请查看:https://express-validator.github.io/docs/.
我最近做了一个带有一些用户身份验证表单的node js ejs项目。有没有一种特殊的方法可以为前端和后端添加验证。我如何在 get 和 post 方法之间传递我的数据值。 ?是否可以这样做。请帮忙谢谢
前端登录验证
您不应在前端验证或验证任何内容。也就是说,您可以使用 HTML 属性来帮助减轻后端的一些负担,并防止人们在输入密码时看到密码。
<input type="password" class="input" name="password" autocomplete="off" placeholder="Enter password" required>
在此示例中,密码类型属性是告诉 HTML 它应该期望的输入类型的关键。添加 required 将防止用户将该字段留空,因此它可以帮助减轻您的后端负担并添加另一个级别的非常基本的安全性(这绝不是必要的安全输入)。有关密码输入类型的更多信息,请查看 MDN 条目:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password
Node JS 的后端登录验证
您可以在后端使用路由 (routes.js
) 文件来为不同的页面提供服务,并通过验证器传递信息。确定登录数据是否有效应该始终在连接到数据库的单独控制器文件中完成,例如 MySQL。验证或清理用户输入应始终在此文件中完成,但特定于您使用的数据库类型。通常这涉及转义用户输入或在处理数据库时使用准备好的语句。
然而,从更一般的意义上讲,我认为最好的 Node JS 验证器是 express-validator(尤其是如果您已经在后端使用 express 时)。通过创建自己的中间件并使用现有的中间件,您可以控制在客户端和服务器之间传递的内容。这允许您控制您的服务器是继续 get/post 请求还是应该发送错误页面。
要在您的项目中包含 express-validator,只需使用 npm 安装包并使用以下命令将其包含在您的文件中:
const { body } = require("express-validator");
或者如果您需要验证作为 url 参数传递的数据:
const { query } = require("express-validator");
此验证器用于在 routes.js
文件中输入密码的示例:
router.post("/login",
[
body("password", "The Password must be of minimum 4 characters length")
.notEmpty()
.trim()
.isLength({ min: 4 }),
],
login
);
此示例处理登录 url 端点,如果在此端点发出 post 请求,则使用 class 名称验证 ejs/html 主体元素“密码”使用标准的快速验证方法。有关如何使用快速验证器的更多示例和信息,请查看:https://express-validator.github.io/docs/.