Java Spring后端中的Firebase VerifyIdToken

时间:2018-12-13 08:02:36

标签: java spring-boot firebase-authentication google-signin firebase-admin

我有一个移动应用程序,该应用程序使用Google签名并尝试验证后端的令牌(Java Spring)。 在许多文章之后,我为此设置了一些代码。

  1. FirebaseServiceCredential.java

这是用于Firebase连接,因为我正在使用 Admin SDK

进行验证
--tls --cafile <orderer-cert>
  1. GoogleSignInService.java

这是verifyIdToken

的代码
    package com.nostratech.nostrafood.config;

    import com.google.auth.oauth2.GoogleCredentials;
    import com.google.firebase.FirebaseApp;
    import com.google.firebase.FirebaseOptions;
    import com.google.firebase.database.FirebaseDatabase;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.annotation.Configuration;

    import java.io.FileInputStream;
    import java.io.IOException;

    @Slf4j
    @Configuration
    public class FirebaseServiceCredential {
    public void firebaseConnect() throws IOException {
        try {
            FileInputStream serviceAccount = new FileInputStream("resources/charity-firebase-adminsdk-ymwjh-61467z75ba.json");

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl("https://charity.firebaseio.com/")
                .build();

        FirebaseApp.initializeApp(options);
        FirebaseDatabase.getInstance(FirebaseApp.getInstance()).setPersistenceEnabled(true);

            } catch (Exception e) {
                log.debug("Trying to login to firebase failed. Reason: " + e.getMessage());
            }
        }
    }

接下来我该怎么做才能验证令牌?我读过很多文章,但仍然不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

如果verifyIdToken()返回而没有引发异常,则令牌被验证。无需其他任何操作即可验证ID令牌。返回值(FirebaseToken)使您可以访问与已认证用户关联的UID和JWT声明。