【问题标题】:Firebase VerifyIdToken in Java Spring backendJava Spring后端中的Firebase VerifyIdToken
【发布时间】:2019-05-14 09:44:26
【问题描述】:

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

  1. FirebaseServiceCredential.java

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

进行验证
    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. GoogleSignInService.java

这是verifyIdToken的代码

    package com.nostratech.nostrafood.service.base;

    import com.google.firebase.auth.FirebaseAuth;
    import com.google.firebase.auth.FirebaseAuthException;
    import com.google.firebase.auth.FirebaseToken;
    import org.springframework.stereotype.Service;

    @Service
    public class GoogleSignInService {

        public void verifyToken(String idToken) throws FirebaseAuthException {
            FirebaseToken decodedToken = 
            FirebaseAuth.getInstance().verifyIdToken(idToken);
            String uid = decodedToken.getUid();
        }
    }

接下来我应该做什么来验证令牌?我已经阅读了很多文章,但仍然不知道该怎么办。

【问题讨论】:

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


    【解决方案1】:

    如果verifyIdToken() 在没有抛出异常的情况下返回,则验证令牌。验证 ID 令牌不需要其他操作。返回值 (FirebaseToken) 让您可以访问与经过身份验证的用户关联的 UID 和 JWT 声明。

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 2017-04-06
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 2019-08-09
      相关资源
      最近更新 更多