npm 包 passport-google 使用教程

阅读时长 6 分钟读完

前言

在当今互联网时代,用户需要多个账户才能使用不同的应用程序和服务。为了避免使用不同的用户名和密码,网站和应用程序通常使用 OAuth 和 OpenID Connect 协议以实现对外部认证系统的对接。Passport 是一个强大的 Node.js 身份验证库,可以通过不同的策略集成 OAuth 和 OpenID 认证。

本文将介绍如何使用 passport-google 策略来实现 Google OAuth 2.0 认证。Google 提供的 OAuth 2.0 允许用户授权一个应用程序来代表他们使用 Google API。我们将学习如何使用 passport-google 包来集成 OAuth 2.0 认证流程。

步骤

创建应用程序

在使用 Google OAuth 2.0 进行身份验证之前,我们需要在 Google API 控制台中创建一个新的应用程序。首先,访问 Google API 控制台 网站。

点击左侧面板上的 “Select a Project” 的下拉列表,然后点击 “New Project” 创建新的项目。填写必要的信息后,单击 “Create” 按钮完成项目创建。

接下来,点击 “Library” 按钮,搜索 “Google+ API” 并启用该 API。在启用该 API 后,将转到配置面板,其中包括您的 OAuth 2.0 客户端 ID 和密钥。

安装依赖

要开始使用 passport-google 包,我们需要首先安装它。打开终端并输入以下命令:

初始化 Passport

在 Express 应用程序中,我们需要引入 passportpassport-google 模块,并初始化 passport,代码如下:

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

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

请注意,我们传递了三个参数:clientIDclientSecretcallbackURL

  • clientID:在 Google API 控制台中创建的 OAuth 2.0 客户端 ID。
  • clientSecret:在 Google API 控制台中创建的 OAuth 2.0 客户端密钥。
  • callbackURL:在 Google API 控制台中配置的 OAuth 2.0 授权回调 URL。

在初始化中,我们还传递了回调函数,其中包括 accessTokenrefreshTokenprofiledone 参数。这是处理验证流程的最重要的部分。

路由创建

我们现在需要创建路由来处理身份验证流程和授权回调。我们将创建以下两个路由:

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

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

在验证路由中,我们使用 passport.authenticate() 方法来处理 OAuth 2.0 认证流程。在进入授权回调路由之前,用户将被重定向到 Google OAuth 2.0 认证页面,以便验证他们的身份。

在授权回调中,我们使用 passport.authenticate() 方法来验证成功的 OAuth 2.0 授权响应。如果用户成功验证,则将重定向到主页,如果没有,则将重定向回登录页面。

示例代码

最后,这是完整的示例代码:

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

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

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

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

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

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

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

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

总结

本文介绍了如何使用 passport-google 包来实现 Google OAuth 2.0 认证。通过了解 OAuth 2.0 的流程和 passport 库的工作原理,我们可以在 Express 应用程序中轻松集成 Google OAuth 2.0 认证,并实现自定义的验证逻辑。

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

纠错
反馈