OpenID:未经身份验证的 POST 在身份验证后变为 GET



我正在为我的应用程序试用OpenID Connect,但有一个特定的工作流程我无法支持。

我有一个"添加到购物车"按钮,可以向HTTP服务器发出POST请求。如果用户未通过身份验证,则用户将转到身份提供程序进行身份验证。但是,在对用户进行身份验证后,身份提供程序会使用GET将浏览器重定向到redirect_uri,这意味着我的应用程序将丢失用户想要购买的项目的上下文。

我能想到的唯一选择是在用户登录之前隐藏"添加到购物车"按钮,但这似乎是 OpenID 的一个重要限制。有没有其他解决方案?

如果用户未通过身份验证,则用户将转到身份提供程序进行身份验证。

这是您丢失开机自检信息的第一个重定向。

因此,在决定必须重定向用户时,您需要将 POST 数据存储在会话中,并在用户登录后提取它们。

重定向总是会变成 GET 请求,在重定向的情况下无法保留 POST 的正文。所以你能做的事情很少

  1. 显示登录名而不是添加到购物车

  2. 登录重定向 URI 应具有对具有足够信息的特殊添加到购物车 URL 的 get 请求。所以基本上是一个额外的GET端点,而不仅仅是用于将产品添加到购物车的POST

  3. 允许在不进行身份验证的情况下管理购物车,这是大多数电子商务解决方案可以做的

相关内容

最新更新