通过服务帐户使用Google库访问驱动器API时,是否需要显式刷新令牌 答案:更多信息:参考文献:

问题描述

我有一个用Java编写的应用程序,该应用程序通过服务帐户使用Google SDK for drive API将文件上传到Google Drive。我想了解我确实需要显式处理访问令牌到期问题,因为据我了解,SDK本身会检查并刷新令牌(如果令牌过期)。 我可能是错的,但是我没有找到有关服务帐户令牌刷新的任何文档。 任何对此的解释将非常有帮助。 如果有帮助,我已附加了Google授权代码。

  public void init() throws Exception {
        // consider gAuth is a google_scret.json file
        gAuth = SecretsUtil.getSecret("auth");
        credentials = GoogleCredentials.fromStream(new ByteArrayInputStream(gAuth.getBytes()))
                .createScoped(DriveScopes.all());
        requestInitializer = new HttpCredentialsAdapter(credentials);
        log.info("Google Auth Service Initialized");
        
    }

    public HttpRequestInitializer getCredential() {
        return requestInitializer;
    }

解决方法

答案:

不需要,这已为您处理。

更多信息:

从文档中:

服务帐户使用的OAuth 2.0流不需要人工授权。相反,它使用只有您的应用程序可以访问的密钥文件。

这个想法是,服务帐户将继续运行,执行所需的操作,而无需任何人进行任何交互,以便客户端库为您处理。

由Google OAuth 2.0授权服务器发行的访问令牌会在发布后一小时内失效。当访问令牌过期时,应用程序应生成另一个JWT,对其进行签名,然后请求另一个访问令牌。

我希望这对您有帮助!

参考文献:

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...