我是 django 新手,正在尝试使用 firebase admin sdk 对用户进行身份验证。我正在尝试进行令牌身份验证,并在我的 django 应用程序中设置了 admin sdk。我还收到了 Android 应用程序中的客户端 ID 令牌。
现在我无法理解如何将此 ID 发送到后端并验证其作为用户并相应地创建用户。我确实找到了 这个答案,但无法真正理解如何进行此操作。
另外,如果用户经过验证,我如何添加和更新其数据。我需要再次传递令牌还是有其他方法可以做到这一点?
django django-rest-framework firebase-authentication firebase-admin
我在一个项目中使用 Firebase,其中使用 Firebase 令牌 ID 作为不记名令牌来对用户进行身份验证。
项目工作正常,但我想知道verifyIdToken()缓存时如何工作。
现在,该项目的工作方式如下:
verifyIdToken()验证用户。问题与方法有关verifyIdToken(),以及是否有必要在每个新令牌上调用 Firebase API。
我读过这个问题,其中说:
verifyIdToken() 还针对性能进行了优化。它缓存 Firebase 令牌公共证书(有效期 6 小时),用于验证本地计算机上的令牌签名。除了下载公共证书之外,不涉及任何 RPC。
另外,这个答案说:
当您调用 verifyIdToken 时,管理 SDK 使用公钥对令牌进行解码并验证签名是否有效。它从 Google 服务器下载此密钥,但会缓存 24 小时
以及评论:
verifyIdToken() 从 Google 服务器获取公钥。但这些会被缓存长达 24 小时,因此 RPC 调用开销会被摊销。
但是,下载并缓存什么证书?来自用户还是项目?
那么,服务器是否需要在每次从客户端获取新数据时调用 Firebase API tokenId,或者服务器可以在没有互联网连接的情况下使用缓存的证书进行解码吗?
主要目标是减少对 Firebase API 的调用次数,因此我想知道如果每 24 小时下载一次 Perm 缓存,服务器是否可以在没有互联网的情况下解码项目的每个有效令牌。
提前致谢。