介绍
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
:
npm install ember-simple-auth-envoy --save
使用
ember-simple-auth-envoy
包提供了两个 Ember 组件:envoy-authenticator
和 envoy-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-authenticator
和 envoy-authorizer
组件,以实现用户认证和授权。希望这个教程能够帮助你在自己的 Ember.js 应用中实现认证和授权,以及使用 Envoy.js 保护后端 API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005576c81e8991b448d4692