代码之家  ›  专栏  ›  技术社区  ›  Blackjack

java spring后端的firebase verifyidtoken

  •  0
  • Blackjack  · 技术社区  · 6 年前

    我有一个移动应用程序,使用谷歌标志,并试图验证令牌在后端(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. GoGoSLigNeNoServices

    这是 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();
            }
        }
    

    下一步我该如何验证令牌?我读了很多文章,但还是不知道该怎么办。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Hiranya Jayathilaka    6 年前

    如果 verifyIdToken() 返回而不引发异常,然后验证令牌。不需要其他操作来验证ID令牌。返回值( FirebaseToken )使您能够访问与已验证的用户相关联的UID和JWT声明。