在继续之前通知呼叫者需要额外的设置

Informing caller additional setup required before continuing

需要帮助来理解处理 additional-information-required 场景的标准流程。

上下文:我们有许多产品实施,都与中央单个 sign-on 服务器集成。注册客户可以选择开始使用新产品 on-demand。但有些产品要求客户在使用产品之前执行一些 one-off 设置步骤 - 这些步骤仅在第一次使用产品时需要。

假设客户在页面 https://product-abc.ourdomain.com 上。现在点击该产品中的 link,例如 'do something (note, this will redirect you to product-xyz)'。此时客户被重定向到 https://product-xyz.ourdomain.com。在这里,我们想要检测客户是否是第一次使用该产品,如果是,则将用户重定向到设置页面,我们可以在其中提示他们提供 product-specific 附加信息。另一方面,如果客户已经为产品配置好,他们将直接导航到产品页面并继续使用它。

我想知道是否有类似于 401 Unauthorized 流程的东西来处理这个问题。使用身份验证流程,

我想知道是否有类似的流程,

似乎最符合我的用例的状态代码是 402 Payment Required,但 product-xyz 不需要任何特定的订阅或付款。我们只需要一些 product-specific 附加信息来进行初始配置。

我可以通过使用 3xx 重定向进行自定义实现来处理它,但我想知道是否有更好的处理方法。

感谢您的指点。

除非您使用 basic-authentication,否则您不想使用 401 Unauthorized" status code with a WWW-Authenticate` header。浏览器中的这种内置机制功能非常有限:

  • 始终提示输入用户名和密码,没有任何机制可以通过外观或自定义工作流来自定义过程。你说你想用single-sign-on。 401 Unauthorized 与那个不兼容。
  • 没有log-out机制
  • 没有session超时机制

因此,几乎所有网站都使用基于表单和 cookie 的登录。如果有人没有登录,您应该使用 302 Temporary redirect 到登录页面。

同样,如果有人没有完成初始设置以使用特定页面,您将不会使用特殊的 HTTP 状态。您可以向他们展示一个 200 OK 页面,其中包含要求您需要的数据的表单,或者使用 302 Temporary redirect 将他们带到另一个 URL.[=15= 上的该表单。 ]