Express.js 中使用 Passport 实现 OAuth 认证的教程

阅读时长 4 分钟读完

在现代的 Web 应用程序中,认证是一个非常重要的功能。OAuth 是一种常见的认证协议,它允许用户授权第三方应用程序访问他们的资源(如 Google 账户或 Facebook 账户)。

Passport 是一个非常流行的 Node.js 认证库,它支持多种认证策略,包括 OAuth。在本教程中,我们将使用 Express.js 和 Passport 来实现一个 OAuth 认证示例。

准备工作

在开始之前,我们需要确保我们已经安装了 Node.js 和 Express.js。如果你还没有安装,可以在这里下载和安装。

我们还需要安装一些依赖项。在终端中,进入你的项目目录,并运行以下命令:

在这里,我们安装了 Express.js、Passport 和 Passport-Google-OAuth2。

创建应用程序

首先,我们需要创建一个 Express.js 应用程序。在你的项目目录中,创建一个名为 app.js 的文件,并添加以下代码:

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

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

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

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

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

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

在这里,我们首先导入 Express、Passport 和 Passport-Google-OAuth2。然后,我们创建一个 Express 应用程序,并配置 Passport-Google-OAuth2 策略。

在这里,我们需要提供我们的 Google API 客户端 ID 和客户端密钥。你可以在 Google 开发者控制台中创建一个新的 OAuth 客户端 ID。

我们还定义了两个路由:/auth/google/auth/google/callback。当用户访问 /auth/google 时,他们将被重定向到 Google 的 OAuth 授权页面。一旦用户授权我们的应用程序,他们将被重定向回 /auth/google/callback,我们将在这里处理他们的授权令牌和个人资料信息。

最后,我们启动应用程序并监听端口 3000。

运行应用程序

现在,我们已经准备好运行我们的应用程序了。在终端中,进入你的项目目录,并运行以下命令:

现在,在你的浏览器中,访问 http://localhost:3000/auth/google,你将被重定向到 Google 的 OAuth 授权页面。一旦你授权了我们的应用程序,你将被重定向回 http://localhost:3000/auth/google/callback,你应该能够看到我们的应用程序成功重定向到主页。

总结

在本教程中,我们使用 Express.js 和 Passport-Google-OAuth2 实现了一个简单的 OAuth 认证示例。虽然这只是一个简单的示例,但它演示了如何使用 Passport 和 OAuth 来实现强大的认证功能。你可以将这个示例用作基础,并根据你的需求进行扩展。

完整的示例代码可以在我的 GitHub 上找到:https://github.com/johnsmith/example-oauth-passport-express

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

纠错
反馈