在现在的 Web 应用中,用户认证是一个必不可少的功能。同时,本地认证(指用户名和密码等凭证在本地进行验证)也是比较常见的一种认证方式。在 Node.js 场景下,使用 Passport-local 是一个方便、高效的选择。本文将详细介绍如何在 Express.js 中使用 Passport-local 进行本地认证。
环境准备
首先,我们得安装 Node.js 和 Express.js。如果您还没有安装,可以到官网进行下载。
接着,需要安装 Passport 和 Passport-local:
npm install passport passport-local
创建 Express.js 应用
首先,我们需要创建一个基于 Express.js 的应用。如果您已经很熟悉 Express.js 的使用,可以直接跳过该节。这里我们采用 Express 应用生成器来快速创建一个应用:
npm install -g express-generator
在终端中输入以下命令创建一个基本的 Express.js 应用:
express myapp cd myapp npm install
配置 Passport-local
接着,我们需要在应用中配置 Passport-local。首先,在 app.js 中引入 Passport 和 Passport-local:
const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy;
然后,配置 Passport 使用 LocalStrategy:
-- -------------------- ---- ------- ---------------- -------------- ------------------ --------- ----- - -- ----------------------- -- --------- --- ------- -- -------- --- --------- - ------ ---------- - --------- ------- --- - ---- - ------ ---------- ------ - -------- ---------- --- - - ---
编写认证接口
接着,我们需要编写一个认证接口。这里我们使用 Postman 来测试接口。首先,我们需要在路由中添加一个登录接口:
app.post('/login', passport.authenticate('local', { session: false }), function(req, res) { res.json({ username: req.user.username }); });
其中,passport.authenticate('local')
表示使用 LocalStrategy 进行本地认证。
测试接口
接着,在 Postman 中测试 /login
接口。输入用户名和密码,点击发送请求,可以看到返回了用户名。
至此,我们已经成功地在 Express.js 中使用 Passport-local 进行本地认证。完整的代码如下所示:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - -------------------- ----- ------------- - ----------------------------------- ----- --- - ---------- ---------------- -------------- ------------------ --------- ----- - -- ----------------------- -- --------- --- ------- -- -------- --- --------- - ------ ---------- - --------- ------- --- - ---- - ------ ---------- ------ - -------- ---------- --- - - --- ------------------------------- ------------------ ------------------------------ - -------- ----- --- ------------- ---- - ---------- --------- ----------------- --- --- ----- ---- - ----- ---------------- ---------- - ------------------- -- --------- -- ---- ---------- ---
在实际开发中,我们需要替换成自己的本地验证逻辑。同时,可以对接口进行安全性优化,例如对密码进行加密等。
总结
本文介绍了如何在 Express.js 中使用 Passport-local 进行本地认证。通过配置 Passport 和编写认证接口,我们成功地实现了一个简单的本地认证应用。希望读者能够通过此文掌握 Passport-local 的使用方法,同时可以根据实际需求扩展该功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c909305ad90b6d041581c3