在现代 Web 应用程序中,安全是非常重要的。保护用户的访问仅允许授权的人员并限制非授权的访问者非常重要。为此,现在很多 Web 应用程序都会有用户登录认证系统。
在本文中,我们将讨论如何使用 Node.js 和 Express 创建一个简单的登录认证系统。
安装 Node.js 和 Express
首先,您需要确保已经安装了 Node.js 和 Express。如果您还没有安装,可以按照以下步骤进行操作:
- 前往 Node.js 官网 https://nodejs.org/en/download/ 下载 Node.js。
- 打开命令行终端并输入以下命令来安装 Express:
npm install express
创建一个 Express 应用
现在,我们将创建一个 Express 应用程序来实现用户的登录认证系统。首先,在您的本地计算机上创建一个名为 login-app
的新目录,并通过以下命令初始化 npm 项目:
----- --------- -- -- --------- --- ---- --
接下来,安装 Express 和几个其他必要的依赖项:
--- ------- ------- --------------- -------- -------- --------------
设置数据库
我们使用 MongoDB 来存储用户的信息。以下是如何安装和启动 MongoDB 的步骤:
- 前往 MongoDB 官网 https://www.mongodb.com/try/download/community 下载 MongoDB。
- 打开命令行终端并输入以下命令来启动 MongoDB:
mongod
现在,我们可以创建一个名为 login-app
的 MongoDB 数据库,并在其中创建一个名为 users
的集合来存储用户信息。
-- ----- ----- -------- - ------------------- ------------------------------------------------- - ---------------- ----- ------------------- ---- -- ----- -- - ------------------- -------------- --------------------------- -------- ---------- --------- --------------- -- -- ---------------------- -- ----------
设置 Express 应用程序
我们需要创建 app.js
文件来设置 Express 应用程序,并实现登录认证系统。
-- ------ ----- ------- - ------------------ ----- ------- - -------------------------- ----- -------- - ------------------- ----- ------------- - ---------------------------------- ----- ---- - ------------------------ ----- -- - --------------- ----- --- - --------- ----------------------- ---------------------------- --------- ----- --- -------- --------- ------- ------- ----- ------- ------ ------------------ ----- -- - ------------------------------ --------------------------- ------------- --- ------------------------ --------- ----- -- - -------------- -------- -- ----- ----- -- - -- ----- ------ --------- -- ------- ------ ---------- ------ - -------- ---------- ---------- -- -- ------------------------------- ------ ---------- ------ - -------- ---------- ---------- -- ------ ---------- ----- -- -- - ----------------------------- ----- -- - ---------- -------- -- ----------------------------- ----- -- - ----------------- ----- ----- -- - --------- ----- -- -- ------------ ----- ---- -- - -------------- ------ -- ----------------- ----- ---- -- - ---------- --------- --------- ----- --------------- -------------- ----- ------------------------ ------ ----------- --------------- -- ------ ----- ------------------------ ------ --------------- --------------- -- ------ ----- ------ ------------- ------------- -- ------ ------- -- -- --------- --------- ------------------------------ - ---------------- --------- ---------------- --- -- - ------------------ ----- ---- -- - ------------ ---------------------- -- ---------------- -- -- ------------------- ------- -- ---- -------
在这个文件中,我们:
- 引入必要的依赖项(express、session、passport、passport-local、User 模型和 db.js)。
- 设置 Express 中间件(json、urlencoded、session)。
- 实现
passport-local
策略LocalStrategy
,用于对用户进行身份验证。 - 设置
passport
的序列化和反序列化函数。 - 配置路由
GET /
、GET /login
、POST /login
和GET /logout
,以实现完整的登录认证系统。
创建 User 模型
现在,我们需要定义一个 User
模型来存储用户信息。创建 user.js
文件并定义模型如下:
-- ------- ----- -------- - ------------------- ----- ------ - ----------------- ----- ---------- - --- ---------------- - --------- - ----- ------- ------- ----- --------- ---- -- --------- - ----- ------- --------- ---- - -- - ----------- ---- - - ---------------------- -------- ------ - ----- ---- - ---- -- ------------------------------ ------ ------ -------------------------- --- ----- ----- -- - -- ----- ------ --------- ------------- - ---- ------ -- -- -------------------------------- - -------- ---------- - ------ ---------------------------- -------------- - ----- ---- - ---------------------- ----------- -------------- - ----
在这个文件中,我们:
- 引入必要的依赖项(mongoose 和 bcrypt)。
- 定义 User 模型。
- 实现
pre
钩子函数,在保存之前对密码进行哈希化。 - 实现
validPassword
方法,用于验证用户密码的正确性。
测试登录认证系统
运行以下命令来启动应用程序:
---- ------
现在可以在浏览器中打开 http://localhost:3000。当您尝试访问首页时,您将被重定向到登录页面。输入用户名和密码,然后单击“登录”按钮。如果您提供的信息正确,则应将您重定向到主页。
到此,就完成了使用 Node.js 和 Express 创建一个简单的登录认证系统的步骤。
总结
在本文中,我们讨论了如何使用 Node.js 和 Express 创建一个简单的登录认证系统。我们学习了如何使用 Passport 和 Passport-local 来实现登录认证系统,并学习了一些有用的密码安全实践。我们也学习了如何使用 MongoDB 存储用户信息。
我希望本文对您有所帮助。如果您有任何问题或建议,请在下面的评论中提出。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64cc920e5ad90b6d0429895c