Firebase VerifyIdToken in Java Spring backend



我有一个移动应用程序,它使用谷歌签名并尝试在后端验证令牌(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

这是用于验证IDToken 的代码

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

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

如果verifyIdToken()返回而没有抛出异常,则验证令牌。无需执行其他操作即可验证ID令牌。返回值(FirebaseToken(使您可以访问与经过身份验证的用户相关联的UID和JWT声明。

最新更新