如何在 Express.js 中使用 OAuth 进行身份验证?

阅读时长 6 分钟读完

在现代 Web 应用程序中,身份验证是至关重要的。 OAuth 是一种流行的身份验证协议,它允许用户使用第三方服务进行身份验证。在本文中,我们将讨论如何在 Express.js 中使用 OAuth 进行身份验证。

什么是 OAuth?

OAuth 是一种开放标准,它允许用户使用第三方服务进行身份验证。例如,当您使用 Facebook 或 Google 登录某个网站时,您实际上是使用 OAuth 进行身份验证。 OAuth 允许用户授权第三方应用程序访问其受保护的资源,而无需提供其凭据。

OAuth 有多个版本,但最常见的是 OAuth 2.0。 OAuth 2.0 强制执行 HTTPS,可以使用许多不同的授权类型(例如,授权码,隐式授权和密码授权),并且支持许多不同的客户端类型(例如,Web 应用程序,移动应用程序和桌面应用程序)。

在 Express.js 中使用 OAuth 进行身份验证并不难。我们将使用 Passport.js,这是一个流行的身份验证库,它支持多种身份验证策略,包括 OAuth。

步骤 1:安装 Passport.js 和相关的 OAuth 策略

要使用 Passport.js,我们需要先安装它以及我们要使用的 OAuth 策略。在终端中运行以下命令:

这将安装 Passport.js 和 Facebook 和 Google OAuth 策略。

步骤 2:配置 Passport.js

在我们的 Express.js 应用程序中,我们需要配置 Passport.js。我们需要指定我们要使用的策略,以及我们的应用程序的凭据。在我们的应用程序中创建一个名为 passport.js 的文件,并添加以下代码:

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

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

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

在这里,我们配置了 Facebook 和 Google 策略,并指定了我们的应用程序的凭据和回调 URL。我们还指定了一个回调函数,该函数将在身份验证成功后执行。

步骤 3:配置 Express.js 应用程序

现在,我们需要在我们的 Express.js 应用程序中配置 Passport.js。我们需要添加以下代码:

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

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

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

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

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

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

在这里,我们初始化 Passport.js 并将其添加到我们的 Express.js 应用程序中。我们还定义了两个身份验证路由,一个用于 Facebook,一个用于 Google。当用户访问这些路由时,Passport.js 将重定向用户到相应的 OAuth 提供程序以进行身份验证。

步骤 4:测试身份验证

现在,我们已经完成了身份验证的配置。我们可以测试它是否正常工作。要测试身份验证,请运行您的 Express.js 应用程序,并在浏览器中打开以下 URL:

这将重定向您到 Facebook 登录页面。在那里,您可以输入您的 Facebook 凭据并登录。如果您成功登录,您将被重定向回您的 Express.js 应用程序,并看到您的个人资料信息。

同样,您可以测试 Google 身份验证:

这将重定向您到 Google 登录页面。在那里,您可以输入您的 Google 凭据并登录。如果您成功登录,您将被重定向回您的 Express.js 应用程序,并看到您的个人资料信息。

结论

在本文中,我们讨论了如何在 Express.js 中使用 OAuth 进行身份验证。我们使用 Passport.js 和 Facebook 和 Google OAuth 策略来实现身份验证。我们还讨论了如何配置 Express.js 应用程序以使用 Passport.js。现在,您可以在自己的应用程序中实现 OAuth 身份验证,并保护您的用户数据。

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

纠错
反馈