身份验证是一个网站或应用程序中的关键功能,它确保只有授权用户才能访问敏感信息或执行敏感操作。在本文中,我们将介绍如何使用 Node.js 和 Express.js 创建一个带有身份验证的完整 web 应用程序。
设置
在开始编写代码之前,我们需要安装 Node.js 和 Express.js。您可以在 Node.js 官网下载 Node.js 安装包,并在安装 Node.js 后使用 Node.js 的包管理器 NPM 安装 Express.js。
我们还需要安装一些其他的包。在您的项目文件夹中,使用以下命令安装这些包:
npm install express express-session body-parser passport passport-local bcrypt mongoose connect-flash --save
这些包将用于创建 Express.js 应用程序并处理身份验证。
创建应用程序
我们将使用 Express.js 创建应用程序。在您的项目文件夹中,创建一个名为 app.js
的文件,然后将以下代码写入其中:
-- -------------------- ---- ------- -- ------ ----- ------- - ------------------- ----- ------- - --------------------------- ----- ---------- - ----------------------- ----- -------- - -------------------- ----- ------------- - ----------------------------------- ----- ------ - ------------------ ----- -------- - -------------------- ----- ----- - ------------------------- -- ----- ---------------------------------------------------- - ---------------- ---- --- -- ------ ----- ---- - ---------------------- --- ----------------- --------- ------- --------- ------ ---- -- -------- ---------------- -------------- ---------- --------- ----- -- - -------------- --------- -------- -- ----- ----- -- - -- ----- - ------ ---------- - -- ------- - ------ ---------- ------ - -------- ---------- ---------- --- - ------------------------ -------------- ----- ---- -- - -- ----- - ------ ---------- ------ - ---- - ------ ---------- ------ - -------- ---------- ---------- --- - --- --- - --- -- ------------ ----------------------------- ----- -- - ---------- --------- --- ----------------------------- ----- -- - ----------------- ----- ----- -- - --------- ------ --- --- -- ------ ----- --- - ---------- -- ------ ---------------- ----------- ------------- -------- ------- -- --- ------------------------------- --------- ----- ---- ----------------- ------- ----------------- ------- ------ ------------------ ----- ------- - ------- ----- - ---- ------------------------------- ---------------------------- ----------------- -- -- ------------ ----- ---- -- - ------------------- - ----- --------- -------- -------------------- --- --- ----------------- ----- ---- -- - ------------------- - -------- -------------------- --- --- ------------------ ------------------------------ - ---------------- ---- ---------------- --------- ------------- ---- ---- ------------------ ----- ---- -- - ------------- ------------------ --- -------------------- ----- ---- -- - ---------------------- - -------- -------------------- --- --- --------------------- ----- ---- -- - ----- -------- - ------------------ ----- -------- - ------------------ --------------------- --- ----- ----- -- - ----- ------- - --- ------ --------- --------- --------- ---- --- ---------------- -- - -- ----- - -------------------- --- ----- -------- ----- ------------ ------ --- --------- -------------------------- - ---- - -------------------- ---- ---- ------------ -------------- ----------------------- - --- --- --- -- ------ ---------------- -- -- -------------------- --- --------- -- ---- ---------
在代码中,我们定义了用户模型,包括用户名和密码。我们使用本地验证策略来验证用户凭据,并使用 bcrypt 包进行密码哈希。我们还设置了序列化和反序列化用户对象以处理用户会话。
我们使用 Pug 作为模板引擎,并定义了几个路由来实现用户注册、登录和注销功能。我们使用 Flash 包在路由之间传递消息。
创建模板
我们可以使用 Pug 模板引擎创建模板。在您的项目文件夹中,创建一个名为 views
的文件夹,并在其中创建以下模板文件:
layout.pug
:
-- -------------------- ---- ------- ---- ---- ------ ----- ---- --- -- -- ---- -- -------- ----------------- -- ---------------------- ------------- --------------------- ------ ---- -- ---------------- ----- -- ------------------- -------- ---- -- ------- --------- - ------- ----- -------
index.pug
:
-- -------------------- ---- ------- ------- ------ ----- ------- -- ------- -- --- -------- - - --- --- --------- ------ -- ---- - -- -- ----------------- ---- - ---- - ------ --- -- -- ------ --- ------------ -----
login.pug
:
-- -------------------- ---- ------- ------- ------ ----- ------- -- ----- --------------------- -------------- - --------------------- --------- ------------------ ---------------- - --------------------- --------- ---------------------- ---------------- --------------------- ----- -- ------- --------- - -------
register.pug
:
-- -------------------- ---- ------- ------- ------ ----- ------- -- -------- ------------------------ -------------- - --------------------- --------- ------------------ ---------------- - --------------------- --------- ---------------------- ---------------- --------------------- -------- -- ------- --------- - -------
运行应用程序
现在我们可以在命令行中使用以下命令运行应用程序:
node app.js
在您的 web 浏览器中,访问 http://localhost:3000
,并尝试注册、登录和注销用户以测试应用程序。
结论
在本文中,我们介绍了如何使用 Node.js 和 Express.js 创建一个带有身份验证的完整 web 应用程序,包括用户模型、验证策略和会话处理。我们还介绍了如何使用 Flash 包在路由之间传递消息,并使用 Pug 模板引擎创建模板。这应该为您提供了一些有关身份验证的深度和学习以及指导意义,并提供了一些示例代码让您获得使用身份验证的开端。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670cc3c85f551281025b976d