微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我们正在构建一个共享通用身份验证和父域的 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 中心、网络工作者

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。