错误:获取服务帐户的访问令牌时出错:远程主机终止了握手,iss

问题描述 投票:0回答:1

我使用下面的 Java 代码片段来获取 Firebase Messaging 的身份验证令牌。但在调用refreshIfExpired方法时抛出错误。

Java代码:

private static String getAccessToken() throws IOException {
    String[] SCOPES = {"https://www.googleapis.com/auth/firebase.messaging"};
    
    GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream("./src/service-account.json")).createScoped(Arrays.asList(SCOPES));
    //googleCredentials.refresh();
    try {
        googleCredentials.getAuthenticationType();
        googleCredentials.refreshIfExpired();
    } catch (IOException e) {
        e.printStackTrace();
    }
    
    return googleCredentials.getAccessToken().getTokenValue();    
}

原因:javax.net.ssl.SSLHandshakeException:远程主机终止握手。
详细错误:获取服务帐户的访问令牌时出错:远程主机终止了握手,iss:firebase-adminsdk-jnf15@

这些错误与 jar 或证书有关吗?根据 Firebase 文档,他们没有提到任何与证书相关的内容。

文档链接中的 Java 片段代码:https://firebase.google.com/docs/cloud-messaging/migrate-v1#use-credentials-to-mint-access-tokens

getAccessToken()
方法已在 Google Firebase API 文档中共享,并且通过上传某些所需的 jar 使用相同的方法。

此服务应该返回访问令牌,该令牌将在后续服务中用作承载令牌,以在 REST API 调用中将通知发送到设备。但该服务未按预期工作并返回错误。

java firebase-cloud-messaging access-token firebase-admin sslexception
1个回答
0
投票

不确定这个问题是否仍然存在,您能解决吗?很想知道你是怎么做到的。

© www.soinside.com 2019 - 2024. All rights reserved.