在 Ember 简单验证中处理多个帐户

Handling Multiple Accounts in Ember Simple Auth

我正在使用 Ember 2.3 和 Ember Simple Auth 1.0,想知道是否有人对处理以下情况的最佳方法有任何建议:

对于我的平台服务的特定行业,大多数员工实际上是独立承包商,因此可能属于多个企业。话虽如此,我有一些我正在努力解决的具体要求:

为实现这一点,我的初始实施基于为每个用户帐户发布单个 JWT(使用 ember-simple-auth-token)。建议的身份验证流程如下:

  1. 用户使用用户名和密码登录
  2. 系统进行身份验证,如果凭据有效,return 每个帐户的令牌。
    • 如果系统return没有令牌,return一个错误。
    • 如果系统 return 是单个令牌,则默认使用该令牌并重定向到站点的已验证区域。
    • 如果系统 return 有多个令牌,则显示与这些令牌关联的帐户列表,并允许用户选择他们将在此时担任角色的帐户。

当系统 return 有多个令牌时我有疑问怎么办:

如果还有什么我应该考虑的,我将不胜感激。如果您也碰巧认为这是一种糟糕的方法并提供一些反馈,我绝对会喜欢它。

干杯。

从 ESA 的角度来看,当后端用一个或多个令牌响应时,用户将得到身份验证(当然,您必须实施自定义身份验证器和授权器)。会话实际上包含多个帐户的多个令牌这一事实与 ESA 真的无关——那将是……。您需要在应用程序代码中处理。

一旦会话通过一个或多个令牌进行身份验证,您就可以通过会话的 data.authenticated 属性 访问它们,例如this.get('session.data.authenticated.tokens') 等。您可以将用户想要使用的当前活动帐户存储在会话的非身份验证区域中,例如this.get('session.data').set('activeToken', 'whatever').