使用身份验证进行自定义 API 调用

make custom API call with authentication

我正在尝试开发一个应用程序,它最终应该取代现有的(非Ember)应用程序并提供额外的功能。

首先,对于新应用程序中尚未实现的任何内容,我想将用户重定向到现有应用程序,使用后者的单点登录功能。我想象的工作流程是这样的:

  1. 用户登录到新的 (Ember) 应用程序点击 link 或那里的按钮
  2. 新应用对 return 具有 SSO 令牌
  3. 的端点进行 API 调用
  4. 生成新应用 link,包括 SSO 令牌,打开它(在新的或相同的 window 中)

我使用 ember-simple-auth 对 API 调用的用户进行身份验证 return 用户特定信息,使用 JSON 网络令牌,其中包含用户id.

对于上面的第 2 步,我需要在 API 调用中包含该令牌,但我不知道如何实现调用,甚至不知道在哪里实现调用。为此我需要一个 Ember.Route(我可以在其中放入 AuthenticatedRouteMixin)吗?我不认为 SSO 令牌是我的模型的一部分,所以这似乎不对。我能否以某种方式获取会话的令牌并将其包含在直接 ajax 调用中?我应该吗?

ember-simple-auth 提供 SessionService 您可以访问该信息的地方。

我的建议是使用 ember-ajax 发出实际请求,并覆盖 ajax 服务以调用 session 服务 authorize 方法。

然后您需要实施您的授权方来授权该请求。

具体实施取决于您的授权方以及您希望如何在请求中包含令牌。作为 header,查询参数,或在 body.