2

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

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

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

4

2 回答 2

0

如果用户未通过身份验证,则用户前往身份提供者进行身份验证。

这是您丢失 POST 信息的第一个重定向。

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

于 2018-06-18T11:14:52.110 回答
0

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

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

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

  3. 允许在未经身份验证的情况下管理购物车,这是大多数电子商务解决方案会做的事情

于 2018-06-13T08:44:43.263 回答