使用 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
}
}
有人知道怎么做吗?
- 您必须在 Google Console 处创建一个项目。
- 您必须为创建的项目创建一个 OAuth 客户端 ID
- 在您的应用程序中实施 OAuth,如 Wiki Page
上的 命令行授权代码流程 一章所述
- 将示例中的 OAuth2ClientCredentials-Constants 替换为您在步骤 2 中生成的客户端 ID 和客户端密码
可在 here 中找到使用 Google OAuth 库实现 OAuth 的 java 应用程序的完整示例。只需检查源代码并使其适应您的应用程序并更改客户端 ID 和客户端密码。
我正在创建一个与云 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
}
}
有人知道怎么做吗?
- 您必须在 Google Console 处创建一个项目。
- 您必须为创建的项目创建一个 OAuth 客户端 ID
- 在您的应用程序中实施 OAuth,如 Wiki Page 上的 命令行授权代码流程 一章所述
- 将示例中的 OAuth2ClientCredentials-Constants 替换为您在步骤 2 中生成的客户端 ID 和客户端密码
可在 here 中找到使用 Google OAuth 库实现 OAuth 的 java 应用程序的完整示例。只需检查源代码并使其适应您的应用程序并更改客户端 ID 和客户端密码。