【问题标题】:Google API Exception "invalid_grant" in DEVs GlassFish but not in Local开发人员 GlassFish 中的 Google API 异常“invalid_grant”,但在本地却没有
【发布时间】:2015-05-19 14:19:16
【问题描述】:

我正在使用 OAuth 2.0 对 Google 的 API 进行身份验证,并且在我的本地 GlassFish 中一切正常。 当我部署到 DEV 的 GlassFish 时,问题就开始了,这引发了以下异常:

com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request { "error" : "invalid_grant" }

这是我的代码:

        transport = GoogleNetHttpTransport.newTrustedTransport();
        jsonFactory = JacksonFactory.getDefaultInstance();

        credential = new GoogleCredential.Builder()
                .setTransport(transport)
                .setJsonFactory(jsonFactory)
                .setServiceAccountUser(googleAdminEmail)
                .setServiceAccountId(googleAdminAccount)
                .setServiceAccountScopes(Arrays.asList(
                                DirectoryScopes.ADMIN_DIRECTORY_USER,
                                DirectoryScopes.ADMIN_DIRECTORY_GROUP,
                                DirectoryScopes.ADMIN_DIRECTORY_GROUP_MEMBER))
                .setServiceAccountPrivateKeyFromP12File(new File(googleAdminKeyPath))
                .build();           

        credential.refreshToken();

引发异常的确切行是:

 credential.refreshToken();

如果我从本地运行中获取访问令牌,假设令牌值为“usghuidblk”,并且我在 DEV 的 GlasshFish 上运行时设置了该值:credential.setAcessToken("usghiudblk"); 它会让我正常访问,但这仍然不会工作:credential.refreshToken();

我真的不知道为什么在本地一切正常,但在 DEV 的 GlassFish 中却不行。

【问题讨论】:

  • 用户给了你多少次刷新令牌?

标签: java oauth google-api glassfish


【解决方案1】:

通过这篇文章的答案解决了它:

Invalid grant when accessing Google API

问题是服务器的时钟与 NTP 不同步。

原来如此……

【讨论】:

    猜你喜欢
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多