Ember Simple Auth子域重定向

时间:2016-06-08 16:58:37

标签: javascript ember.js ember-simple-auth

我已经能够使用共享的基于Ember Simple Auth cookie的身份验证成功设置多个Ember应用程序。我的旅程的下一步是在应用程序之间设置适当的重定向。听我说。

场景A(这是开箱即用的,是的!)

  • 用户尝试访问domain.com/deep/link/resource
  • 用户未登录
  • 用户被重定向到domain.com/login以通过单点登录组件登录,该组件使用Ember Simple Auth来保存带令牌的cookie
  • 成功登录后,用户将通过之前的转换重定向回domain.com/deep/link/resource

场景B(这是开箱即用的,是的!)

  • 用户尝试访问app-b.domain.com/deep/link/resource
  • 用户已通过令牌
  • 的Ember Simple Auth cookie登录
  • 用户可以访问app-b.domain.com/deep/link/resource路径

场景C(这是我需要实现的)

  • 用户尝试访问app-a.domain.com/deep/link/resource
  • 用户未登录
  • 用户被重定向到domain.com/login以通过单点登录组件登录,该组件使用Ember Simple Auth来保存带令牌的cookie
  • 成功登录后,用户会通过app-a.domain.com/deep/link/resource子域
  • 上的前一次转换重定向回app-a

非常感谢任何帮助或指导。我想知道我是否只能使用Ember Simple Auth实现 Scenario C ,或者我需要在子域等beforeModel上编写自定义重定向逻辑。

1 个答案:

答案 0 :(得分:0)

您可以通过覆盖AuthenticatedRouteMixin's beforeModel method来使方案C正常工作。这将默认为(Ember.js)转换到登录路由,但在您的情况下,你想要某事。比如window.location.replace('domain.com/login')并记住Cookie中的当前网址。为了在用户登录后重定向到app-a.domain.com/deep/link/resource,您需要覆盖ApplicationRouteMixin's sessionAuthenticated method,以便重定向到cookie中记住的先前URL(如果存在),并且如果存在则回退到默认行为不

总的来说,实现这一点应该非常直接,实际上是按照这些步骤进行的。