使用 Google OAuth 2.0 验证桌面客户端应用程序

Authenticate desktop client app with Google OAuth 2.0

我正在创建一个与云 SQL MySQL 数据库通信的 Java 桌面应用程序。目前,访问权限是按 ip 地址授予的,并限制某些计算机对数据库的访问。 我想使用 Google 的 OAuth 2.0 验证计算机对数据库的访问。如何为我的应用程序设置 Google OAuth? 我已经阅读了 Google 文档 (OAuth 2.0 and Google Client API),但我仍然不知道如何执行此操作。

非常感谢任何帮助!

编辑 我有一个客户端,就是电脑上的应用运行。这个 Java 应用程序有一个 openConnection 方法,它通过 jdbc 驱动程序请求一个 mysql 连接。我认为 openConnection 方法应该如下所示。

public void openConnection() {
    Connection con = //HTTP request to Google App Engine
                     //In http request: request(accessToken, ipAddress, );
}

服务器应该有一个 doGet 方法,它应该类似于下面显示的方法。

public void doGet(HttpServletRequest req, HttpServletResponse res) {
        //Authenticate
        boolean passed = //some way to authenticate the client
        if (passed) {
            //This request would pass, because the app engine has read write access
            Connection con = DriverManager.getConnection("jdbc:mysql://"+ipAddress+":"+portNumber+"/"+databaseName,user,pass);
            return connection;
        }
        else{
            //Not authenticated
        }

}

有人知道怎么做吗?

  1. 您必须在 Google Console 处创建一个项目。
  2. 您必须为创建的项目创建一个 OAuth 客户端 ID
  3. 在您的应用程序中实施 OAuth,如 Wiki Page
  4. 上的 命令行授权代码流程 一章所述
  5. 将示例中的 OAuth2ClientCredentials-Constants 替换为您在步骤 2 中生成的客户端 ID 和客户端密码

可在 here 中找到使用 Google OAuth 库实现 OAuth 的 java 应用程序的完整示例。只需检查源代码并使其适应您的应用程序并更改客户端 ID 和客户端密码。