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