我正在使用Firebase解析用户数据,例如:
从firebase_admin导入身份验证 encoded_token = auth.verify_id_token(client_id_token) 我正在使用firebase_admin.initialize_app(cred)初始化我的Firebase信用
此处cliend_id_token是客户端发送的令牌。但是,执行此操作大约需要1秒钟,这似乎太长了。一种可能性是在此之上使用一个缓存层(lru缓存,memcache),但似乎从根本上讲它不应该花那么长时间。看一下verify_id_token的签名,似乎没有什么可以与我传递的东西脱颖而出:
def verify_id_token(id_token,app = None):
关于如何诊断(或者如果我缺少什么)的任何想法?
答案 0 :(得分:0)
问题是因为该函数执行 http 请求以获得解码 jwt 的密钥。另外,因为它返回用户的电子邮件等信息,而jwt只包含uid作为解码jwt的sub字段,我认为它在幕后做了另一个 http 请求,以从解码的 uid 中获取用户。
您应该按照文档实现您的自定义解码功能:https://firebase.google.com/docs/auth/admin/verify-id-tokens