winforms - Google Oauth2 同意屏幕允许按钮已禁用
问题描述
我有一个使用 Google Oauth2 进行用户身份验证的 Window Forms 应用程序。在 Google 控制台中,我使用我的学校电子邮件创建了一个项目,这意味着它有一个组织,并且我已将我的项目设置为“内部”,这意味着我不需要验证应用程序(如果我错了,请纠正我)。我没有启用任何库 API,因为我使用的唯一范围是“openid 电子邮件配置文件”。
去年,该应用程序运行完美。用户可以进行身份验证,应用程序可以从 Google 获取访问令牌,然后与我的另一台服务器交换代码以访问其他 API。但是,我最近发现同意屏幕中的“允许”按钮以及“拒绝”按钮也被禁用。
我环顾四周,它不像“未经验证的应用程序”,因为它只是禁用了按钮,你可以看到下面的图片。
任何人都知道 Google Oauth2 桌面应用程序发生了什么?我读过了
在 Google Oauth2 Docs 中,我不知道它到底是什么意思。
解决方案
经过网上的更多研究,原因是谷歌更新了反钓鱼协议“MITM - Man In The Middle”,使得像Winform中的webbrowser控件这样的嵌入式网络浏览器现在不能再做Oauth的事情了,因为它不能保护令牌。您可以在下面的链接中阅读它 https://security.googleblog.com/2019/04/better-protection-against-man-in-middle.html https://developers.googleblog.com/2016/08/modernizing- oauth-interactions-in-native-apps.html
为了解决这个问题,我使用设备网络浏览器而不是网络。我使用来自这个 github 的代码 https://github.com/googlesamples/oauth-apps-for-windows
我要结束这个问题。
推荐阅读
- android - android目标:android:命令失败,退出代码为enoent Meteor
- java - 如何在 HttpURLConnection 中向 Url 添加参数
- c# - 想要在 Unity c# 中制作一个 2D 有弹性的浮岛
- node.js - 从节点js同步重命名文件
- ios - iOS 应用商店提交因“App-Prefs:root=WIFI”而被拒绝
- hyperledger-sawtooth - 如何创建 Hyperledger Sawtooth 网络密钥
- tfs - 上传新版本的 TFS 扩展时,卡在“验证”步骤
- c# - 如何使用使用 Microsoft 增强型 RSA 和 AES 加密提供程序的 CertificateRequest 创建自签名证书
- elixir - 函数参数应该适用于字符串和 unicode
- php - 2019-03-13 10:57:58 SMTP 错误:无法连接到服务器:网络无法访问 (101) SMTP connect() 失败