Firebase服务器端verifyIdToken()在幕后做了什么?

gui*_*uik 8 verify token firebase firebase-authentication

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

boj*_*eil 5

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

  • 不,可以缓存公共证书。他们不会经常轮换。当它们过期时,需要网络请求。大多数时候,您只需使用缓存的内容。 (3认同)