Javascript 需要什么样的体系结构才能允许多个web应用程序协同工作,并且可以单独更新?

Javascript 需要什么样的体系结构才能允许多个web应用程序协同工作,并且可以单独更新?,javascript,html,web,Javascript,Html,Web,我不确定用语言来解释这个问题的最佳方式,所以我将举一个例子来解释我的意思 当你去谷歌,你有一个标题,其中包含许多不同的网络应用程序(搜索,图像,gmail等)。这些都是独立的应用程序,可以独立于其他应用程序进行更新,但共享公共组件(登录、标题栏本身等)。他们是怎么做到的 现在我只有一个应用程序。顶部栏有几个不同的选项卡。我需要添加两个新的web应用程序,每个应用程序都可以从另一个单独更新/销售。如果有人买了全部3个,他们应该在导航栏中看到全部3个。如果他们只买了1台,他们应该只看1台。应该有一个

我不确定用语言来解释这个问题的最佳方式,所以我将举一个例子来解释我的意思

当你去谷歌,你有一个标题,其中包含许多不同的网络应用程序(搜索,图像,gmail等)。这些都是独立的应用程序,可以独立于其他应用程序进行更新,但共享公共组件(登录、标题栏本身等)。他们是怎么做到的

现在我只有一个应用程序。顶部栏有几个不同的选项卡。我需要添加两个新的web应用程序,每个应用程序都可以从另一个单独更新/销售。如果有人买了全部3个,他们应该在导航栏中看到全部3个。如果他们只买了1台,他们应该只看1台。应该有一个单一的登录所有这些事情。我不知道如何做到这一点,同时保持每件事的独立性,以便可以在自己的时间表上更新


问题是如何在所有3个站点之间保持相同的导航栏?此导航栏需要可配置(仅显示其拥有的产品,以及字体、语言等其他修改)。我可以处理SSO部分,它是不同应用程序之间的共享代码,以及它背后的自定义功能。

如果您有3个独立的Web应用程序,并且希望对所有这些应用程序使用单一登录:您可能希望查看SSO,基本上,您需要分离以下关注点:

  • 登录/用户数据(是谁?)
  • 许可证(他们支付了什么费用?)
  • 应用程序元数据(我们销售哪些应用程序?它们的名称、图标、URL等)
  • 应用程序框架(元导航栏)
  • 个人应用程序
举例说明:

  • 您需要一个登录机制(自定义解决方案或第三方,如OpenID)。所有应用程序的登录表单都相同,仅与用户数据有关。登录查询您的客户数据库,查看我们是否识别正在登录的用户,如果识别,请设置cookie等-仅此而已

  • 您的每个应用程序都必须包含“应用程序框架”(将其视为一个库),它执行以下操作:对于当前用户(有效cookie等),它查询该用户购买的应用程序的授权数据库。然后,它可以查询你购买的应用程序的应用程序元数据,并生成一个漂亮的导航栏,其中只包含这些应用程序的链接/图标

  • 您的单个应用程序对其他应用程序一无所知。它们不包括任何处理登录或在应用程序之间切换的代码。所有这些任务都委托给元框架,元框架检查用户是否已登录并生成导航栏。应用程序只需将其显示在适当的位置(例如页面顶部)


  • 当然,所有这些都发生在服务器端,细节取决于实际使用的技术。

    您是在寻找单点登录吗?