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 登录的主要内容,如果未能解决你的问题,请参考以下文章