EmberJS:全局 class 函数依赖于会话变量,使用 Ember-Simple-Auth。最佳实践?

EmberJS: global class functions depend on a session variable, using Ember-Simple-Auth. Best Practice?

我有一个关于在 EmberJS 中构建全局实用程序 class 时的最佳实践的问题,而 class 将表现出用户特定的行为。

以下条件全部成立:

  1. class 的方法可以从整个应用程序的任何地方访问。
  2. 应用程序使用 Ember-Simple-Auth 执行基于 JSON 的身份验证。
  3. 身份验证确认负载附带一些有关用户的信息。
  4. 令牌负载中收到的信息将决定实用程序 class 功能的行为。

我的问题

  1. Util 是最佳选择吗? 我是否应该在确认身份验证时使用服务并以某种方式 "initialize" 此服务?我的最终目标是在我的应用程序中几乎每个 route/template/component 使用这个 class。

  2. 身份验证有效载荷有多冷? 除了任何令牌之外,是否可以在身份验证有效载荷中发送用户特定信息的碎屑?

最好的选择是使用服务。

他们是:

  • 单例
  • 可以注入到任何扩展自 Ember.Object
  • 的对象

Is a Util the best option?

没有。服务是最好的选择。 ESA 的身份验证挂钩成功后,您可以对其进行初始化。而且它可以到处注入

How chill are authentication payloads?

你可以发送任何东西。您的 authenticator 负责处理。有效载荷保存在 ESA 会话服务

中的 data.authenticated 对象中