由于本包为英文包名,故以下说明中会出现英文简写表述,但会在首次出现时进行解释说明。
在前端领域中,我们通常需要处理用户认证(Authentication)与用户授权(Authorization)等问题。处理这些问题通常需要写许多代码,然而 npm 有许多 npm 包提供便捷的解决方案。本文将介绍一个名为 passport-jupp 的 npm 包。本包是 express 网页应用程序开发框架中的身份验证(Authentication)中间件,可以快速增加本地认证策略(Strategy)和社交媒体认证策略。
安装
安装本 npm 包非常简单,我们只需要在终端中执行以下一行命令:
npm install passport-jupp
之后,我们需要在 js 文件中引用本包,一般的方法为使用 require
函数,如下所示:
const passport = require('passport'); // 引用 passport const LocalStrategy = require('passport-local').Strategy; // 引用本地认证策略 const JuppStrategy = require('passport-jupp').Strategy; // 引用 Jupp 认证策略
使用
配置
在使用 passport-jupp 包之前,我们需要先进行配置。对于本地认证策略,我们需要指定认证回调函数(Authentication Callback Function),对于社交媒体认证策略,我们需要指定一些选项信息。在下面的示例中,我们将创建一个名为 jupp
的新的 Jupp 认证策略,并且创建一个名为 local
的新的本地认证策略。
-- -------------------- ---- ------- -- -- ---- ---- ---------------- -------------- --------- ------------------------------------------------- ------------- ------------------------------------------------- ------------ ------------------------------------------ -- --------------- ------------ -------- --- - ------------------- ------- ---------- -- -------- ----- ----- - ------ ------- ------ --- - --- -- -------- ---------------- -------------- ------------------ --------- ----- - -------------- --------- -------- -- ------------- ----- - -- ----- - ------ ---------- - -- ------- - ------ ---------- ------- - -- ------------------------------- - ------ ---------- ------- - ------ ---------- ------ --- - ---
中间件使用
在路由控制器中使用本地认证策略,我们只需要用 passport.authenticate
函数指定认证方法和选项信息即可。在本示例中,我们将其作为 /login
的路由处理函数。
app.post('/login', passport.authenticate('local', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); });
如果我们要使用 Jupp 认证策略,我们可以用 passport.authenticate
函数指定 jupp
认证策略名称,并且重定向到授权页面。
app.get('/auth/jupp', passport.authenticate('jupp')); app.get('/auth/jupp/callback', passport.authenticate('jupp', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); });
序列化和反序列化用户对象
在使用本地认证策略时,我们需要序列化和反序列化用户对象。在下面的示例中,我们使用了 passport.serializeUser
和 passport.deserializeUser
函数。
-- -------------------- ---- ------- ------------------------------------- ----- - ---------- --------- --- ------------------------------------- ----- - ----------------- ------------- ----- - --------- ------ --- ---
小结
passport-jupp 是一个有效且强大的认证解决方案。它使我们不必重新编写大量的认证代码,而是只需使用 npm 包进行快速集成。本文介绍了它的一些用法和配置,可以在认证方面为前端开发人员提供便利。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006735c890c4f7277583ff1