【问题标题】:make custom API call with authentication使用身份验证进行自定义 API 调用
【发布时间】:2016-07-04 10:32:11
【问题描述】:

我正在尝试开发一种应用程序,该应用程序最终应替换现有(非 Ember)应用程序并提供附加功能。

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

  1. 登录到新 (Ember) 应用的用户点击链接或按钮
  2. 新应用对返回 SSO 令牌的端点进行 API 调用
  3. 新应用生成的链接包括 SSO 令牌,打开它(在新窗口或同一窗口中)

我使用 ember-simple-auth 对返回用户特定信息的 API 调用的用户进行身份验证,使用包含用户 ID 的 JSON Web 令牌。

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

【问题讨论】:

    标签: ember.js ember-simple-auth


    【解决方案1】:

    ember-simple-auth 提供了SessionService,您可以在其中访问该信息。

    我的建议是使用ember-ajax进行实际请求,并重写ajax服务来调用会话服务authorize方法。

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

    具体实施取决于您的授权方以及您希望如何在请求中包含令牌。作为标题、查询参数或在正文中。

    【讨论】:

    • 谢谢 :-) ember-ajax 是缺少的元素。我没有显式调用authorize方法,而是设置了headers['authorization'] = 'Bearer ' + this.get('session.session.content.authenticated.token'),这可能不太优雅,但至少它有效。
    猜你喜欢
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 2019-03-21
    • 2016-07-09
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多