npm 包 passport-jupp 使用教程

阅读时长 5 分钟读完

由于本包为英文包名,故以下说明中会出现英文简写表述,但会在首次出现时进行解释说明。

在前端领域中,我们通常需要处理用户认证(Authentication)与用户授权(Authorization)等问题。处理这些问题通常需要写许多代码,然而 npm 有许多 npm 包提供便捷的解决方案。本文将介绍一个名为 passport-jupp 的 npm 包。本包是 express 网页应用程序开发框架中的身份验证(Authentication)中间件,可以快速增加本地认证策略(Strategy)和社交媒体认证策略。

安装

安装本 npm 包非常简单,我们只需要在终端中执行以下一行命令:

之后,我们需要在 js 文件中引用本包,一般的方法为使用 require 函数,如下所示:

使用

配置

在使用 passport-jupp 包之前,我们需要先进行配置。对于本地认证策略,我们需要指定认证回调函数(Authentication Callback Function),对于社交媒体认证策略,我们需要指定一些选项信息。在下面的示例中,我们将创建一个名为 jupp 的新的 Jupp 认证策略,并且创建一个名为 local 的新的本地认证策略。

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

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

中间件使用

在路由控制器中使用本地认证策略,我们只需要用 passport.authenticate 函数指定认证方法和选项信息即可。在本示例中,我们将其作为 /login 的路由处理函数。

如果我们要使用 Jupp 认证策略,我们可以用 passport.authenticate 函数指定 jupp 认证策略名称,并且重定向到授权页面。

序列化和反序列化用户对象

在使用本地认证策略时,我们需要序列化和反序列化用户对象。在下面的示例中,我们使用了 passport.serializeUserpassport.deserializeUser 函数。

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

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

小结

passport-jupp 是一个有效且强大的认证解决方案。它使我们不必重新编写大量的认证代码,而是只需使用 npm 包进行快速集成。本文介绍了它的一些用法和配置,可以在认证方面为前端开发人员提供便利。

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

纠错
反馈