Oauth2 重定向成功后如何打开模态框?

How do I open a Modal after a successful Oauth2 redirect?

我正在开发一个相对较旧的 Web 应用程序,基于 portal/portlet 架构。

我在应用程序上有一个入口,它在模态中加载了我的功能。目前,我们在模式中内置了导航,如果客户来回移动,我们会显示和隐藏 div,并在交互结束后使用 Javascript 更新我们的入口。

现在我们想在模态中引入另一张卡片,它要求客户访问敏感数据,因此我们希望客户再次进行身份验证。

我们有一个 OpenId OAuth2 身份验证提供程序,我们通过回调 URL 调用它。目前这个回调 URL 是主页的 URL,因此客户被带离了我们的模式体验,我们很可能参与度下降。我们希望能够让他们回到他们在进行身份验证之前中断的模态体验。

是否有一些常见的策略或模式可以帮助实现这一目标?可能有用的一件事是,如果我们也能够将 javascript 方法作为重定向 url 的一部分传递。

我无法对底层容器进行任何更改,但可以自由添加 javascript 事件和处理程序。

您可以在 OAuth2 请求中使用状态参数。 来自 RFC 6749:

the client MAY use the "state" request parameter to achieve per-request customization

然后当您在响应中返回状态值时,您可以使用附加卡打开模式。状态值是一个字符串值,可以包含您想要的内容。请确保不要忘记涵盖 CSRF。

https://www.rfc-editor.org/rfc/rfc6749#section-3.1.2