javascript - Ember Simple Auth 子域重定向

标签 javascript ember.js ember-simple-auth

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

场景 A(开箱即用,耶!)

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

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

  • 用户尝试访问 app-b.domain.com/deep/link/resource
  • 用户已通过带有 token 的 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 来保存带有 token 的 cookie
  • 成功登录后,用户将通过之前在 app-a 子域上的转换重定向回 app-a.domain.com/deep/link/resource

任何帮助或指导将不胜感激。我想知道是否可以仅使用 Ember Simple Auth 实现场景 C,或者是否需要在子域等的 beforeModel 中编写自定义重定向逻辑。

最佳答案

您将能够通过覆盖 AuthenticatedRouteMixin's beforeModel method 来使场景 C 工作。 。默认情况下,这将是(Ember.js)转换到登录路由,但在您的情况下,您需要某种东西。像 window.location.replace('domain.com/login') 并记住 cookie 中的当前 URL 等。为了在用户登录后重定向到 app-a.domain.com/deep/link/resource,您需要覆盖 ApplicationRouteMixin's sessionAuthenticated method这样它会重定向到 cookie 中记住的上一个 URL(如果存在),如果不存在,则返回到默认行为。

总体而言,实际上按照以下步骤使其正常工作应该非常简单。

关于javascript - Ember Simple Auth 子域重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37708613/

相关文章:

javascript - 如何使按钮在单击后保持 'active'?

javascript - 将自定义服务注入(inject) Angular Controller

javascript - 单击时显示,再次单击时隐藏

javascript - ember 根据经过身份验证的用户设置用户对象

javascript - 如何让 Ember Cli Mirage 与 Ember Simple auth 一起工作

javascript - 如何使用不同的端点刷新 token ?

javascript - 使动画插件工作的问题

javascript - Ember 测试失败,返回 `testem.js not loaded?`

javascript - 通过 HTMLBars 样式绑定(bind)属性用三元运算符替换绑定(bind)属性

javascript - ember-view 包装器破坏了我的 table