如何在 Express.js 中使用 Passport-local 进行本地认证

阅读时长 5 分钟读完

在现在的 Web 应用中,用户认证是一个必不可少的功能。同时,本地认证(指用户名和密码等凭证在本地进行验证)也是比较常见的一种认证方式。在 Node.js 场景下,使用 Passport-local 是一个方便、高效的选择。本文将详细介绍如何在 Express.js 中使用 Passport-local 进行本地认证。

环境准备

首先,我们得安装 Node.js 和 Express.js。如果您还没有安装,可以到官网进行下载。

接着,需要安装 Passport 和 Passport-local:

创建 Express.js 应用

首先,我们需要创建一个基于 Express.js 的应用。如果您已经很熟悉 Express.js 的使用,可以直接跳过该节。这里我们采用 Express 应用生成器来快速创建一个应用:

在终端中输入以下命令创建一个基本的 Express.js 应用:

配置 Passport-local

接着,我们需要在应用中配置 Passport-local。首先,在 app.js 中引入 Passport 和 Passport-local:

然后,配置 Passport 使用 LocalStrategy:

-- -------------------- ---- -------
---------------- --------------
  ------------------ --------- ----- -
    -- -----------------------
    -- --------- --- ------- -- -------- --- --------- -
      ------ ---------- - --------- ------- ---
    - ---- -
      ------ ---------- ------ - -------- ---------- ---
    -
  -
---

编写认证接口

接着,我们需要编写一个认证接口。这里我们使用 Postman 来测试接口。首先,我们需要在路由中添加一个登录接口:

其中,passport.authenticate('local') 表示使用 LocalStrategy 进行本地认证。

测试接口

接着,在 Postman 中测试 /login 接口。输入用户名和密码,点击发送请求,可以看到返回了用户名。

至此,我们已经成功地在 Express.js 中使用 Passport-local 进行本地认证。完整的代码如下所示:

-- -------------------- ---- -------
----- ------- - -------------------
----- -------- - --------------------
----- ------------- - -----------------------------------

----- --- - ----------

---------------- --------------
  ------------------ --------- ----- -
    -- -----------------------
    -- --------- --- ------- -- -------- --- --------- -
      ------ ---------- - --------- ------- ---
    - ---- -
      ------ ---------- ------ - -------- ---------- ---
    -
  -
---

-------------------------------

------------------
  ------------------------------ - -------- ----- ---
  ------------- ---- -
    ---------- --------- ----------------- ---
  ---

----- ---- - -----
---------------- ---------- -
  ------------------- -- --------- -- ---- ----------
---

在实际开发中,我们需要替换成自己的本地验证逻辑。同时,可以对接口进行安全性优化,例如对密码进行加密等。

总结

本文介绍了如何在 Express.js 中使用 Passport-local 进行本地认证。通过配置 Passport 和编写认证接口,我们成功地实现了一个简单的本地认证应用。希望读者能够通过此文掌握 Passport-local 的使用方法,同时可以根据实际需求扩展该功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c909305ad90b6d041581c3

纠错
反馈