从共享同一个父域的多个 Web 应用程序注销

时间:2021-07-19 13:31:48

标签: reactjs cross-domain amazon-cognito aws-amplify logout

我们正在构建一个共享通用身份验证和父域的 Web 应用程序集合/套件。

示例:

  • app1.parentdomain.com
  • app2.parentdomain.com
  • app3.parentdomain.com
  • app4.parentdomain.com

我们使用 AWS cognito 作为身份提供者,使用 React 作为前端框架,使用 AWS Amplify 我们通过在父域级别创建 cookie 来共享身份验证,这很好用,但随后实现了基于 不活动,我们正面临挑战。

假设我们已经用 app1、app2 和 app3 打开了几个浏览器标签;用户在 app3 中处于活动状态,而不活动计时器在 app2 和 app1 选项卡上滴答作响,最终 app1/app2 将用户注销,而用户在 app3 中处于活动状态。

我们需要找到一种客户端解决方案来跨子域共享存储。

我们目前评估的选项

  • Cookies :在父级域创建另一个 cookie,所有应用程序都会限制并更新上次活动时间,并每隔 x 秒轮询 cookie 以检查上次活动是否是大于应用程序的最后一个活动。 cookie 将与所有请求一起发送,而轮询似乎是更被动的解决方案。

  • Window.postmessage :每个愿意与另一个源通信的应用程序都必须有一个指向目标源的 iframe 的引用,我们需要为所有应用程序创建 iframe(减去host ) 在所有应用中。

  • 其他选项(仍在评估中):AWS Amplify 中心、网络工作者

在以前的项目中,我已经使用本地存储跨选项卡为同一域实现了注销。如果有人实施了类似的要求并可以提供一些指导/指示,我将不胜感激。

0 个答案:

没有答案
相关问题