【问题标题】:Python desktop application - close browser in OAuth2 PKCE flowPython 桌面应用程序 - 在 OAuth2 PKCE 流程中关闭浏览器
【发布时间】:2020-11-27 03:14:16
【问题描述】:
我已经使用 Python 使用 Okta 实现了 OAuth2 PKCE 流。它是一个桌面应用程序。我使用自定义 URL 方案作为重定向 URL 来接收授权代码。一切正常,浏览器在重定向 URL 中看到自定义 URL 方案时打开应用程序,但浏览器保持打开状态并显示正在进行 Okta 登录图像。如何关闭浏览器或在浏览器中显示适当的消息?
【问题讨论】:
标签:
python
browser
oauth-2.0
okta
pkce
【解决方案1】:
这是一个棘手的流程,很难做到完美,尽管登录后返回网页而不是直接返回应用程序会给你更大的控制权:
默认选项
使用自动调用的重定向 URI,例如 x-mycompany-desktopapp:/callback,但这会导致浏览器页面遗留/混乱,正如您所发现的那样。
插页式选项
将重定向 URI 更新为如下值,这是您需要托管的网页:
如果您在上述页面上执行“查看源代码”,您将看到它在单击“继续”按钮时调用自定义 URI 方案。这至少可以让您控制登录后的行为和消息传递。
更多信息
我的blog post 有更多详细信息和可以运行的 NodeJS 桌面代码示例。