如何轻松实现在 Node.js 和 GraphQL API 中使用 passport.js 验证

阅读时长 6 分钟读完

在构建 Web 应用程序时,用户身份验证是一个必不可少的功能。Passport.js 是一个流行的 Node.js 身份验证库,它可以轻松地将身份验证集成到您的 Web 应用程序中。在本文中,我们将学习如何使用 Passport.js 在 Node.js 和 GraphQL API 中进行身份验证。

安装 Passport.js

首先,我们需要安装 Passport.js。在终端中输入以下命令:

这将安装 Passport.js 和 Passport-local(用于本地身份验证)。

配置 Passport.js

接下来,我们需要配置 Passport.js。在您的应用程序中创建一个 passport.js 文件,并输入以下代码:

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

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

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

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

此代码将 Passport.js 配置为使用本地策略进行身份验证。您可以通过更改 LocalStrategy 构造函数中的参数来使用其他策略。

在 GraphQL API 中使用 Passport.js

现在,我们已经配置了 Passport.js,接下来我们将学习如何在 GraphQL API 中使用它。

首先,我们需要安装 passport-graphql

然后,在您的应用程序中创建一个 graphql.js 文件,并输入以下代码:

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

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

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

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

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

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

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

此代码将 Passport.js 集成到 GraphQL API 中。graphqlMiddleware 变量是 Passport.js 中间件,用于验证用户身份。在这个例子中,我们使用 local 策略进行身份验证。

示例代码

以下是完整的示例代码:

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

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

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

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

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

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

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

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

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

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

结论

在本文中,我们学习了如何使用 Passport.js 在 Node.js 和 GraphQL API 中进行身份验证。通过使用 Passport.js,我们可以轻松地将身份验证集成到我们的 Web 应用程序中,并保护我们的用户数据。希望这篇文章对您有所帮助!

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

纠错
反馈