在开发现代 web 应用程序时,用户认证是必不可少的一部分。这是因为您需要确保只有经过授权的用户访问您的应用程序,并保护用户数据免受未经授权的访问。
为了实现用户认证,使用 Passport.js 是一种非常流行和有效的方法。Passport.js 是一个 Node.js 应用程序开发框架,可以轻松地在 Express.js 应用程序中集成,并提供了许多策略,如本地策略、Google、Facebook、GitHub 等等,使您可以选择最适合您应用程序的策略。
安装
在使用 Passport.js 之前,需要将其安装到您的项目中。请在终端中使用以下命令进行安装:
$ npm install passport
还需要安装适当的策略,如本地策略。本地策略将用户凭据保存在应用程序本地数据库中,因此只有经过身份验证的用户才可以访问应用程序。使用以下命令安装本地策略:
$ npm install passport-local
配置
下一步是将 Passport.js 配置到 Express.js 应用程序中。请参照以下示例代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - -------------------- ----- ------------- - ----------------------------------- ----- --- - ---------- -- -- -------- ---- ------- --- ------------------------------- ---------------------------- -- -- -------- ---- ---------------- -------------- ------------------ --------- ----- - -- -------- -- --------- --- ------- -- -------- --- ----------- - ------ ---------- - --------- ------- --- - ---- - ------ ---------- ------ - -------- -------- -------- -- --------- --- - - --- -- ------------ ------------------------------------- ----- - ---------- --------------- --- ------------------------------------- ----- - ---------- - --------- -- --- --- -- ---- ------------ ------------- ---- - -- ---- -------------- ------- --- -- -------- ------------------ ------------------------------ - ---------------- -------- --- ------------- ---- - -- -------- ------------------ --- -- ----- ---------------- ---------- - ------------------- --------- -- ---- ------- ---
此代码应该是直截了当的,但是还是做了很多事情。首先,我们表示了一个简单的 Express.js 应用程序。然后,我们添加了 Passport.js 初始化和 session 中间件。初始化中间件允许 Passport 在整个应用程序中运行,而 session 中间件允许 Passport 存储有关身份验证的用户信息,以便他们保持登录状态。
接下来,我们配置了一个本地策略,即将用户凭据保存在应用程序的本地数据库中。Passport 将调用本地策略的验证函数,该函数将检查用户名和密码是否正确。如果通过验证,则 done 函数将返回一个用户对象。否则,返回一个错误消息。
我们还在 Passport 上定义了序列化和反序列化函数,方法是将用户对象序列化为字符串,以便它可以存储在 session 中。反序列化函数则将该字符串反序列化为用户对象。这些函数必须在 Passport 初始化之后配置。
下一步是添加路由。我们定义一个简单的主页路由,然后添加了一个身份验证路由。身份验证路由将使用 Passport authenticate 函数处理身份验证请求。我们传递了一个 local 策略,该策略将调用我们上面定义的本地策略。如果身份验证成功,则用户将重定向到主页,否则将重定向到登录页面。
最后,我们启动了服务器,并指定将其绑定到端口 3000。
结论
使用 Express.js 和 Passport.js 实现用户认证并不是一项复杂的任务。通过使用 Passport.js,可以轻松地添加各种策略,如 Google、Facebook 或本地策略,以便您可以选择最适合您应用程序的策略。本教程提供了一个简单的例子,只需与您的应用程序一起使用即可。
完整示例代码请参见此处:https://github.com/passport/express-4.x-local-example
祝好运!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671b553a9babaf620faac7c8