npm 包 @matthewglover/hapi-oauth 使用教程

在现今社交媒体时代,使用社交账户进行网站认证已经越来越普遍,Hapi 是一款 Node.js 框架,这个框架的 OAuth 2.0 插件 @matthewglover/hapi-oauth,使得在 Hapi 框架中集成 OAuth 认证变得更加容易。

什么是 OAuth 认证?

OAuth 是一个开放标准框架,它允许用户授权第三方应用程序访问他们存储在另一个服务提供程序上的资源,而不需要将用户的用户名和密码提供给第三方应用程序。

OAuth 授权是基于场景的,授权服务器提供的访问权限可以是时间限制的,例如,它可以仅限于“只读访问”(读取他的邮件)或“完全访问”(发送邮件)访问,以及请求环节的详细信息。

OAuth 分为 4 种授权类型,“授权码”、“密码”、“客户端凭证”和“隐式”,详细可参考 OAuth 2.0 规范。

@matthewglover/hapi-oauth 是什么?

@matthewglover/hapi-oauth 是一个 Hapi 插件,它允许您从常见的 OAuth 2.0 提供程序(如 Google、Facebook、GitHub、Twitter 等)中配置 OAuth 应用程序,支持多种 OAuth 2.0 授权类型,为 Hapi 应用程序快速集成 OAuth 认证提供了便利。

如何使用 @matthewglover/hapi-oauth?

  1. 安装 npm 包

从 npm 上安装 @matthewglover/hapi-oauth

--- ------- -------------------------
  1. 配置 OAuth 2.0 提供商

根据您的 OAuth 提供商,您可以创建一个新的 OAuth 应用或使用现有的 OAuth 应用。下面是一些 OAuth 2.0 提供商的应用创建链接:

  1. 配置插件

接下来,在 Hapi 应用程序的插件配置中添加 @matthewglover/hapi-oauth:

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

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

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

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

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

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

在这里我们使用了 Google OAuth 2.0 Provider,您需要配置 provider、password、clientId、isSecure、scope、redirectUri 和 baseUrl。这些属性在每个 OAuth 提供商的应用程序中都有所不同,因此您需要进行适当的配置。

  1. 创建 OAuth 路由

在 Hapi 应用程序的路由中创建 OAuth 授权路由:

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

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

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

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

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

运行此应用程序并尝试访问 '/auth/google',它将使用 Google OAuth 2.0 提供商进行授权,并将用户引导回 '/auth/callback'。在 '/auth/callback' 路由处理程序中,@matthewglover/hapi-oauth 插件使用访问令牌交换用户授权代码。

现在您可以在此处处理该访问令牌。

结论

@matthewglover/hapi-oauth 是一款功能强大的 Hapi 插件,可以轻松地将常见的 OAuth 2.0 提供程序集成到 Hapi 应用程序中,为用户提供更方便的登录方式。通过上述步骤,您可以快速集成 OAuth 认证,来让您的 Hapi 应用程序更加优秀。

示例代码

下面是示例代码,以 Google OAuth 2.0 为例:

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

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

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

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

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

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

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

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

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

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

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

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066bcb967216659e244706


猜你喜欢

  • npm 包 @nodert-win10/windows.ui.input.inking.core 使用教程

    随着 web 技术的不断发展,前端技术领域也越来越庞大。其中,npm 包是前端开发中必不可少的工具之一。本文将介绍一款 npm 包 @nodert-win10/windows.ui.input.ink...

    4 年前
  • npm 包 @npalenchar/giftwrap 使用教程

    介绍 @npalenchar/giftwrap 是一个能够将普通的 JavaScript 对象转化为可迭代的、可观察的对象的 npm 包。它基于 RxJS 实现,可以让你更方便地处理对象的属性,同时也...

    4 年前
  • npm 包 @nphyx/esdox 使用教程

    简介 @nphyx/esdox 是一个基于 ESDoc 的命令行工具,用于生成简洁美观的 API 文档。它支持 JavaScript 和 TypeScript,并可根据您提供的配置文件进行自定义。

    4 年前
  • npm 包 sound.min.js 使用教程

    在前端开发中,经常需要添加音频效果来提升用户体验。而 sound.min.js 就是一款非常方便易用的 npm 包,它可以帮助我们轻松控制音频的播放和停止,实现多种音效效果。

    4 年前
  • npm 包 horror.min.js 使用教程

    前言 在前端开发中,我们需要使用许多第三方库来增加代码的可复用性和降低开发成本。而通过 npm 包管理器进行包的安装和引用也成为了前端开发的常规操作之一。 在 js 的 npm 包中,horror.m...

    4 年前
  • npm 包 pickfiles 使用教程

    npm 包 pickfiles 是一个常用的前端工具,它可以帮助我们在前端项目中进行文件选择和文件上传的操作。在本文中,我们将详细介绍 pickfiles 的使用教程,并提供相关代码示例,帮助读者更好...

    4 年前
  • npm 包 source.min.js 使用教程

    在前端开发中,经常会用到大量的 JavaScript 库和框架。NPM 是目前最流行的包管理器之一,为我们提供了便捷地获取 JavaScript 库和框架的方式。source.min.js 是其中一款...

    4 年前
  • npm 包 start.min.js 使用教程

    在前端开发过程中,我们经常需要使用一些小工具来进行辅助工作,如打包、压缩等等。这时候,npm 包 start.min.js 就是一款强大的工具,它可以帮助我们轻松完成这些任务。

    4 年前
  • npm 包 startup.min.js 使用教程

    在前端开发中,我们经常需要使用一些公用的 JavaScript 库来提高代码的开发效率和代码的复用性。而 npm 包是目前前端开发中使用最广泛的 JavaScript 库的分享和代码管理平台。

    4 年前
  • npm 包 stat.min.js 使用教程

    什么是 stat.min.js? stat.min.js 是一个基于 JavaScript 的数字统计库,该库提供了一些用于计算数字数组中常见统计量的函数,比如平均值、中位数、方差、标准差等。

    4 年前
  • npm 包 spot.min.js 使用教程

    在前端开发中,经常会遇到需要在页面中标注某些重要内容的情况。这时候,我们通常需要用到一款 JavaScript 库,叫做 spot.min.js。 spot.min.js 是一个基于 jQuery 的...

    4 年前
  • npm 包 speaker.min.js 使用教程

    在前端开发中,经常需要实现语音的播放功能。npm 包 speaker.min.js 提供了简便的语音播放功能,在前端应用中可以方便地使用它来播放语音。 本文将详细介绍如何使用 npm 包 speake...

    4 年前
  • npm 包 split.min.js 使用教程

    前言 在前端开发中,我们经常需要将字符串按照指定的字符或字符串进行分割,然后进行相应的处理。而 split.min.js 就是一款用于字符串分割的 npm 包,它对原生的 JavaScript 分割函...

    4 年前
  • npm 包 sport.min.js 使用教程

    什么是 npm 包 npm 是 Node.js 包管理器,是全球最大的软件注册表,可供下载超过 1.5 万个开源软件包。Node.js 应用程序需要使用 npm 来安装和管理所有的依赖关系。

    4 年前
  • npm 包 sql.min.js 使用教程

    在前端开发中,经常需要进行数据的操作与存储。而 SQL 语言在数据的管理上有着广泛的应用。但是在前端环境下,SQL 语言并不是一种常用的语言。因此,我们需要使用 npm 包 sql.min.js,它可...

    4 年前
  • npm 包 ssl.min.js 使用教程

    随着 Web 安全意识的日益增强,越来越多的网站开始采用 SSL/TLS 来保证通信安全。如果你需要在网站上使用 SSL,那么你可能需要使用一个名为 ssl.min.js 的 npm 包。

    4 年前
  • npm 包 sqlite.min.js 使用教程

    什么是 sqlite.min.js? sqlite.min.js 是一个轻量级的 JavaScript 库,可以实现在浏览器中操作 SQLite 数据库,可以用于前端开发中的本地存储、数据缓存等场景。

    4 年前
  • npm 包 host.min.js 使用教程

    1. 什么是 host.min.js host.min.js 是一个前端 Web 应用程序的指定主机解析器。它是一个轻量级的 JavaScript 库,可以轻松解析 URL 并检测主机的名称和地址。

    4 年前
  • npm 包 hosting.min.js 使用教程

    介绍 hosting.min.js 是一个基于 Node.js 的轻量级前端日志统计工具。它可以帮助开发人员轻松地记录网站的访问情况,包括用户访问时间、访问路径、浏览器信息等等。

    4 年前
  • npm 包 star.min.js 使用教程

    在前端开发中,常常需要使用到一些外部库来辅助开发。而 npm 包是前端开发中最受欢迎的一种外部库管理方式之一。star.min.js 就是一个非常有用的 npm 包,它可以帮助开发者制作出漂亮的星星评...

    4 年前

相关推荐

    暂无文章