firebase_admin auth.verify_id_token 非常慢

Posted

技术标签:

【中文标题】firebase_admin auth.verify_id_token 非常慢【英文标题】:firebase_admin auth.verify_id_token is very slow 【发布时间】:2019-04-02 23:37:23 【问题描述】:

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

从 firebase_admin 导入身份验证 decoded_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):

关于如何诊断(或者如果我遗漏了什么)有什么想法吗?

【问题讨论】:

我的nodejs也有这个问题 【参考方案1】:

问题是因为该函数执行 http 请求以获得解码 jwt 的密钥。另外,因为它返回的是用户的email等信息,而jwt只包含uid作为解码后jwt的sub字段,我认为它在后台执行另一个 http 请求以从解码的 uid 获取用户。

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

【讨论】:

以上是关于firebase_admin auth.verify_id_token 非常慢的主要内容,如果未能解决你的问题,请参考以下文章

使用 firebase_admin 或 google.cloud.firestore 在 python 中的 Firestore 客户端(作为用户)

孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录

孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

Firestore - 嵌套查询

ImportError:无法导入适用于 Python 的 Cloud Firestore 库

孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录