firebase_admin auth.verify_id_token 很慢

Her*_*rch 8 python-3.x firebase firebase-authentication

我正在使用 firebase 来解析用户数据进行身份验证,如下所示:

from firebase_admin import auth decoded_token = auth.verify_id_token(client_id_token) 我正在用 firebase_admin.initialize_app(cred) 初始化我的 firebase 信用

这里的 cliend_id_token 是客户端发送的令牌。但是,这需要大约 1 秒才能执行,这似乎太长了。一种可能是在此之上使用缓存层(lru cache、memcache),但从根本上看来它仍然不应该花费这么长时间。查看 verify_id_token 的签名,似乎没有任何可以传递的内容:

def verify_id_token(id_token, app=None):

关于如何诊断(或者我是否遗漏了什么)的任何想法?

Eub*_*per 0

问题是因为该函数执行 http 请求以获得解码 jwt 的密钥。此外,因为它返回用户的电子邮件等信息,而 jwt 仅包含uid作为解码的 jwt 的字段,所以我认为它在幕后执行另一个 http 请求以从解码的 uid 中获取用户。

您应该按照文档实现自定义解码功能:https://firebase.google.com/docs/auth/admin/verify-id-tokens