C++Builder TWebBrowser 不适用于 Google OAuth 登录

Posted

技术标签:

【中文标题】C++Builder TWebBrowser 不适用于 Google OAuth 登录【英文标题】:C++Builder TWebBrowser doesn't work with Google OAuth login 【发布时间】:2021-03-31 15:59:57 【问题描述】:

我维护了一个用 C++Builder 2009 编写的应用程序。其中一部分涉及使用 TWebBrowser 控件(基于 Internet Explorer)将用户发送到 Google 登录页面以获得 OAuth 密钥。这已经运行了一段时间,但现在谷歌,祝福他们,已经实施了某种安全升级,现在我的用户进入一个页面,上面写着“无法登录,这个浏览器或应用程序可能不安全”。仅供参考,我已经设置了一个注册表项,应该让 IE 在版本 11 仿真模式下运行。

我确实有几个解决方法:如果用户首先在管理员模式下运行 IE,然后登录,然后在运行我的应用程序时将其保留,我们不会遇到问题。其次,我可以启动默认浏览器——Chrome、IE 等等——并将它们发送到 OAuth 的 URL,这样就可以避免错误消息。

此解决方案的问题在于,由于无法挂钩TWebBrowser 事件,我无法自动检索 OAuth 密钥 - 用户必须将其剪切/粘贴到我的应用程序中。我想避免这些笨拙的解决方案。

我还要提一下,这个问题只发生在某些 Gmail 帐户上。我不知道有效和无效的帐户之间有什么区别。有什么想法吗?

那么,有什么方法可以配置 IE 或TWebBrowser,从而绕过这个安全问题?或者,如果我要更新到 C++Builder 的现代版本并使用 TWebBrowser(或其他东西?),会避免这个问题吗?还有其他解决此问题的想法吗?

【问题讨论】:

【参考方案1】:

最新的 C++Builder 支持 Google 的 Chromium 引擎,可以肯定地说它将与 Google 的安全升级兼容。

Powerful Chromium Based WebView Component To Host Web Content In Your Delphi/C++ Builder FireMonkey Apps

【讨论】:

以上是关于C++Builder TWebBrowser 不适用于 Google OAuth 登录的主要内容,如果未能解决你的问题,请参考以下文章

检测可编辑 TWebBrowser 中的更改

使用 TWebBrowser 时查看 Web 控制台

如何禁用 TWebBrowser 上下文菜单?

TWebBrowser 中的方向键切换控件

如何在 TWebBrowser 中居中和拉伸/收缩 SVG 显示?

如何从 TWebBrowser 获取图像到 TImage