Python 桌面应用程序 - 在 OAuth2 PKCE 流程中关闭浏览器
Python desktop application - close browser in OAuth2 PKCE flow
我已经使用 Python 通过 Okta 实现了 OAuth2 PKCE 流程。它是一个桌面应用程序。我使用自定义 URL 方案作为重定向 URL 来接收授权码。一切正常,浏览器在重定向 URL 中看到自定义 URL 方案时打开应用程序,但浏览器保持打开状态并显示正在进行的 Okta 登录图像。如何关闭浏览器或在浏览器中显示适当的消息?
这是一个棘手的流程,很难做到完美,但登录后返回网页而不是直接进入应用程序会给您更好的控制权:
默认选项
使用自动调用的重定向 URI,例如 x-mycompany-desktopapp:/callback,但这会导致浏览器页面残留/令人困惑,正如您所发现的。
插页选项
将重定向 URI 更新为这样的值,这是您需要托管的网页:
如果您在上面的页面上执行 'View Source',您将看到它在单击“继续”按钮时调用自定义 URI 方案。这至少让您可以控制 post 登录行为和消息传递。
更多信息
我的 blog post 有更多详细信息和一个 NodeJS 桌面代码示例,您可以 运行。
我已经使用 Python 通过 Okta 实现了 OAuth2 PKCE 流程。它是一个桌面应用程序。我使用自定义 URL 方案作为重定向 URL 来接收授权码。一切正常,浏览器在重定向 URL 中看到自定义 URL 方案时打开应用程序,但浏览器保持打开状态并显示正在进行的 Okta 登录图像。如何关闭浏览器或在浏览器中显示适当的消息?
这是一个棘手的流程,很难做到完美,但登录后返回网页而不是直接进入应用程序会给您更好的控制权:
默认选项
使用自动调用的重定向 URI,例如 x-mycompany-desktopapp:/callback,但这会导致浏览器页面残留/令人困惑,正如您所发现的。
插页选项
将重定向 URI 更新为这样的值,这是您需要托管的网页:
如果您在上面的页面上执行 'View Source',您将看到它在单击“继续”按钮时调用自定义 URI 方案。这至少让您可以控制 post 登录行为和消息传递。
更多信息
我的 blog post 有更多详细信息和一个 NodeJS 桌面代码示例,您可以 运行。