-1

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

当您访问 Google 时,您有一个包含许多不同网络应用程序(搜索、图像、gmail 等)的标题。这些都是独立的应用程序,可以与所有其他应用程序分开更新,但共享通用组件(登录、标题栏本身等)。他们是怎么做到的?

现在我有一个应用程序。顶部栏有几个不同的选项卡。我需要添加两个新的网络应用程序,每个应用程序都可以单独更新/出售。如果有人购买了所有 3 个,他们应该在导航栏中看到所有 3 个。如果他们只买了 1 个,他们应该只会看到 1 个。所有这些东西都应该只有一个登录。我不确定如何在保持每件事独立的同时做到这一点,以便可以按照自己的时间表进行更新。

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

4

2 回答 2

0

基本上,您需要分离以下关注点:

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

为了显示:

  1. 您需要登录机制(自定义解决方案或第三方,如 OpenID)。所有应用程序的登录表单都相同,并且仅涉及用户数据。登录查询您的客户数据库以查看我们是否识别出正在登录的用户,如果我们识别出,设置一个 cookie 等 - 就是这样。

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

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

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

于 2013-09-12T21:38:57.267 回答
-1

如果您有 3 个独立的 Web 应用程序并希望对所有这些应用程序使用单一登录:您可能需要查看 SSO单一登录

于 2013-09-12T21:10:30.620 回答