簡體   English   中英

如何向 node 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的路由 ( routes.js ) 文件為不同的頁面提供服務,並通過驗證器傳遞信息。 例如,確定登錄數據是否有效應始終在連接到數據庫(如 MySQL)的單獨控制器文件中完成。 驗證或清理用戶輸入應始終在此文件中完成,但特定於您正在使用的數據庫類型。 通常這涉及在處理數據庫時轉義用戶輸入或使用准備好的語句。

然而,在更一般的意義上,我認為最好的 Node JS 驗證器是 express-validator(特別是如果你已經在后端使用了 express)。 通過創建自己的中間件並使用現有的中間件,您可以控制客戶端和服務器之間傳遞的內容。 這允許您控制您的服務器是繼續獲取​​/發布請求還是應該發送錯誤頁面。

要在您的項目中包含 express-validator,只需使用 npm 安裝包並使用以下命令將其包含在您的文件中:

const { body } = require("express-validator");

或者如果您需要驗證作為 url 參數傳遞的數據:

const { query } = require("express-validator");

此驗證器用於在routes.js文件中輸入密碼的routes.js

router.post("/login",
    [
        body("password", "The Password must be of minimum 4 characters length")
            .notEmpty()
            .trim()
            .isLength({ min: 4 }),
    ],
    login
);

此示例處理登錄 url 端點,如果在此端點發出 post 請求,則使用標准快速驗證方法使用類名“password”驗證 ejs/html body 元素。 有關如何使用 express-validator 的更多示例和信息,請查看: https : //express-validator.github.io/docs/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM