我正在考虑使用Firebase执行identity verification。我是JWT的新手,所以很抱歉,这是一个显而易见的问题,但是我不明白验证是如何完成的。似乎FirebaseAuth.getInstance().verifyIdToken(idToken)是异步工作的,因为结果是通过监听器获得的。我了解有些certificateshere所述被使用,并且那些证书会定期轮换。这是否意味着每次调用verifyIdToken()时,后端服务器和Firebase服务器之间都需要联网?这不是问题吗?

最佳答案

为了验证Firebase ID token ,需要检索(网络请求)Firebase Auth公共(public)证书,并定期对其进行轮换。这些是确保Id token 未被篡改所必需的。首先解析JWT,检查对 token 进行加密的算法以查看其是否与预期的 token 匹配,然后使用获得的公钥验证签名,最后验证JWT声明以确保 token 未过期。

10-01 00:41