我正在为我的应用尝试OpenID Connect,并且有一个我无法支持的特定工作流程。
我有一个"加入购物车"向HTTP服务器发出POST
请求的按钮。如果用户未经过身份验证,则用户将转至身份提供程序进行身份验证。但是,在对用户进行身份验证后,身份提供商会使用redirect_uri
将浏览器重定向到GET
,这意味着我的应用程序会丢失用户想要购买的项目的上下文。
我能想到的唯一选择是隐藏"添加到购物车"按钮直到用户登录,但似乎这将是OpenID的一个重要限制。还有其他解决方案吗?
答案 0 :(得分:0)
重定向始终会成为GET请求,在重定向的情况下无法保留POST主体。所以你可以做的事情很少
显示登录而非添加到购物车
登录重定向URI应该具有对具有足够信息的特殊添加到购物车URL的获取请求。所以基本上是一个额外的GET端点,而不仅仅是POST,用于将产品添加到购物车
允许在未经过身份验证的情况下管理购物车,这是大多数电子商务解决方案所做的事情
答案 1 :(得分:0)
如果用户未经过身份验证,则用户会转到身份提供程序进行身份验证。
这是您丢失POST信息的第一个重定向。
因此,在决定必须重定向用户时,您需要将POST数据存储在会话中,并在用户登录后进行拾取。