npm 包 ember-simple-auth-envoy 使用教程

阅读时长 5 分钟读完

介绍

Ember Simple Auth Envoy 是一个用于 Ember.js 应用的 NPM 包,它提供了一种简单但强大的认证和授权解决方案。

它基于 Ember Simple Auth,并结合了 Envoy.js 的功能。Envoy.js 是一个基于 OAuth 2.0 的 API 网关,可以用来保护后端 API。

此教程将向你介绍如何使用 ember-simple-auth-envoy 包在你的 Ember.js 应用中实现认证和授权。

安装

使用 npm 安装 ember-simple-auth-envoy

使用

ember-simple-auth-envoy 包提供了两个 Ember 组件:envoy-authenticatorenvoy-authorizer

Authenticator

在你的 Ember.js 应用中,你可以使用 Authenticator 组件来实现用户的登录和登出。下面是一个示例:

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

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

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

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

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

在示例代码中,我们创建了一个 Authenticator 实例,并传入了 serverTokenEndpoint 选项。serverTokenEndpoint 是向后端发送验证请求的 API 端点。在登录时,我们将用户的电子邮件地址和密码传入 Authenticator 组件的 authenticate 方法中,该方法将发送一个 POST 请求到指定的端点。

在成功验证身份之后,我们将在 promise 的解决程序中执行一些进一步的逻辑。如果身份验证失败,我们将在 promise 的 reject 处理程序中处理错误。

Authorizer

Authorizer 组件用于在 API 请求中包含访问令牌。要使用 Authorizer,你需要在 config/environment.js 文件中设置 envoy 选项:

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

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

在上面的示例代码中,我们将 authorizer 设置为 authorizer:envoy,这是 ember-simple-auth-envoy 包中提供的 Authorizer 类。我们还设置了跨域白名单。

envoy 选项中,我们指定了访问令牌的属性名(默认为 access_token),以及用于获得访问令牌的授权端点。

在 API 请求中使用 Authorizer

在你的 Ember.js 应用中,你可以使用 AJAX 套 AJAX 请求,使用 Authorizer 为每个请求头授权。下面是一个使用 jQuery 的示例代码:

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

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

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

在上面的示例代码中,我们使用 jQuery 发送了一个 GET 请求到 /api/data 端点,并在请求头中包含了访问令牌。这个访问令牌是从 session.data.authenticated 对象中获取的,该对象包含了已经登录的用户信息。

总结

本教程介绍了 ember-simple-auth-envoy 包的使用。我们向你展示了如何使用它提供的 envoy-authenticatorenvoy-authorizer 组件,以实现用户认证和授权。希望这个教程能够帮助你在自己的 Ember.js 应用中实现认证和授权,以及使用 Envoy.js 保护后端 API。

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

纠错
反馈