我在app -engine上使用RemoteAPI进行谷歌身份验证(使用ClientLogin,已弃用)。我想把它改成Oauth2.0。我搜索了很多,但没有找到太多解释。任何形式的帮助将不胜感激。
public abstract class RemoteApiClient {
protected void doOperationRemotely() throws IOException {
TestProperties testProperties = TestProperties.inst();
System.out.println("--- Starting remote operation ---");
System.out.println("Going to connect to:"
+ testProperties.PROJECT_REMOTEAPI_APP_DOMAIN + ":"
+ testProperties.PROJECT_REMOTEAPI_APP_PORT);
RemoteApiOptions options = new RemoteApiOptions().server(
testProperties.PROJECT_REMOTEAPI_APP_DOMAIN,
testProperties.PROJECT_REMOTEAPI_APP_PORT).credentials(
testProperties.TEST_ADMIN_ACCOUNT,
testProperties.TEST_ADMIN_PASSWORD);
RemoteApiInstaller installer = new RemoteApiInstaller();
installer.install(options);
try {
doOperation();
} finally {
installer.uninstall();
}
System.out.println("--- Remote operation completed ---");
}
}
答案 0 :(得分:0)
对于OAuth2身份验证,您在gcloud中有两个主要解决方案。
<强> gcloud 强>
安装gcloud(https://cloud.google.com/sdk/),然后初始化它(https://cloud.google.com/sdk/docs/initializing)。 在那之后,你应该去运行&#34; gcloud auth login&#34;这将提示您为gmail上的已连接帐户启用身份验证窗口。
您的其他资源是通过Google控制台创建一个新的服务帐户,提供一个json密钥并将其作为功能参数中的凭据传递或在GOOGLE_APPLICATION_CREDENTIALS环境变量中设置或使用gcloud auth activatve-service-account --key -file&#34; PATH_TO_JSON&#34;。
创建服务帐户的教程:https://developers.google.com/identity/protocols/OAuth2ServiceAccount#overview
gcloud默认身份验证优于服务帐户(如下所述)的主要优点是每个Google云端产品都会在一个固定位置检查application_credentials.json(well_known_file)文件。另一个优点是它的令牌可以在一个多小时的会话期间刷新。