Python桌面应用程序-在OAuth2 PKCE流中关闭浏览器

问题描述

我已经使用Python用Okta实现了OAuth2 PKCE流。它是一个桌面应用程序。我正在使用自定义URL方案作为重定向URL来接收授权代码。一切正常,当浏览器在重定向URL中看到自定义URL方案时浏览器打开了应用程序,但浏览器保持打开状态并显示进行中的Okta登录图像。如何关闭浏览器或在浏览器中显示适当的消息?

解决方法

这是一个棘手的流程,很难做到完美,尽管登录后返回网页而不是直接返回至应用程序将为您提供更大的控制权

默认选项

使用自动调用的重定向URI,例如x-mycompany-desktopapp:/ callback,但这会导致您发现的浏览器页面残缺/混乱。

插页选项

将重定向URI更新为这样的值,这是您需要托管的网页:

如果在上一页中执行“查看源代码”,您将看到单击“继续”按钮时它将调用自定义URI方案。这至少使您可以控制登录后的行为和消息传递。

更多信息

我的blog post包含更多详细信息以及您可以运行的NodeJS桌面代码示例。