我正在构建一个 Ember 应用程序,我必须与SimpleSAMLPHP集成以处理针对多个身份提供者 (IdP) 的身份验证。概括地说,身份验证流程如下:
- 用户导航到 Ember 应用程序
- 用户未通过身份验证(通过 SimpleAuth)并看到视图 A。
- 用户单击“登录”并被定向到 SimpleSAMLPHP,它位于 Ember 应用程序之外。
- 用户输入凭据并针对任何 IdP 进行身份验证并返回给 Ember 应用程序。
问题出在此返回 Ember 应用程序上。Ember 将加载视图 A(未经身份验证的视图),因为 Ember SimpleAuth 尚未到达其sessionAuthenticationSucceeded回调。此后不久就到达该回调,我可以将经过身份验证的视图 B 呈现到插座中。问题是用户在看到视图 B 之前看到了视图 A 的闪现。
- 我可以通过 AJAX 发布到 SimpleSAMLPHP 而无需离开 Ember 应用程序吗?我假设这会破坏这一点,产生安全问题等。
- 或者有没有办法让 Ember 呈现不同的渲染,直到达到 sessionAuthenticationSucceeded 回调?
- 我想我也可以使用一些技巧,让视图 A 始终是一个微调器或其他东西,然后在准备好时渲染一个新视图。我认为这可能只会导致其他问题,因为 sessionAuthenticationSucceeded 仅在身份验证后立即执行。
我要么错过了一些简单的东西,要么就是没有真正的好方法来做到这一点。我愿意接受任何建议,在此先感谢。