远程 API,客户端登录到 Oauth2.0



我正在使用RemoteAPI在应用程序引擎上进行Google身份验证(使用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 ---");
    }
}

对于OAuth2身份验证,gcloud中有两个主要解决方案。

云云

安装 gcloud (https://cloud.google.com/sdk/),然后初始化它 (https://cloud.google.com/sdk/docs/initializing)。之后,您应该运行"gcloud auth login",这将提示您在gmail上连接帐户的身份验证窗口。

您的另一个解决方案是通过googles控制台创建一个新的服务帐户,为其提供json密钥并将其作为函数参数中的凭据传递,或者在GOOGLE_APPLICATION_CREDENTIALS环境变量中设置它或使用gcloud auth activatve-service-account --key-file "PATH_TO_JSON"。

创建服务帐户的教程:https://developers.google.com/identity/protocols/OAuth2ServiceAccount#overview

gcloud默认身份验证相对于服务帐户(如下所述)的主要优点是每个Google Cloud产品都会在恒定位置检查application_credentials.json(well_known_file)文件。另一个优点是其令牌可以在一个多小时的会话中刷新。

相关内容

  • 没有找到相关文章