如何验证由createCustomToken()创建的自定义Firebase身份验证令牌

如何验证由createCustomToken()创建的自定义Firebase身份验证令牌,firebase,firebase-authentication,google-cloud-functions,Firebase,Firebase Authentication,Google Cloud Functions,我通过createCustomToken()创建了自定义身份验证令牌,请参阅 但稍后,当我尝试通过verifyIdToken()函数验证此令牌时,它会抛出以下错误 Error: verifyIdToken() expects an ID token, but was given a custom token. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retriev

我通过createCustomToken()创建了自定义身份验证令牌,请参阅

但稍后,当我尝试通过verifyIdToken()函数验证此令牌时,它会抛出以下错误

Error: verifyIdToken() expects an ID token, but was given a custom token. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.
这是合理的,因为没有这样的ID。。。但我需要的是——简单地验证令牌,类似于jwt.verify()

有没有人遇到过这个问题,找到了什么解决方案?是否可以通过jsonwebtoken库验证Firebase身份验证令牌

另外,我将在谷歌云功能端点中使用验证


解决方案:看起来我刚刚找到了一个解决方案,只需要从jsonwebtoken库中获取公钥并使用jsonwebtoken库对其进行验证…

verifyIdToken
就像名称是要验证
IdToken
,而不是自定义令牌一样

CustomToken用于客户端登录。可以像您的解决方案一样使用简单的JWT验证来验证此自定义令牌(它在一小时后过期)

但是,
IdToken
是另一回事,您需要使用firebase auth进行登录过程

要在登录后从客户端获取
Id令牌
,这取决于客户端是Android、Web还是IOS。
获取
IdToken
的代码可以在

中读取。原因是,如果您知道任何令牌的加密公钥,您可以对其进行验证。不同之处在于verifyIdToken还检查用户表中是否存在用户。在我的例子中,我既不想在users表中检查用户是否存在,也不想使用新的CustomToken登录以在users表中创建新用户。无论如何,我为我的特殊情况找到了替代方案。谢谢您的回答。@Timothy,我面临着类似的要求“在我的情况下,我不想在用户表中检查用户是否存在,也不想使用新的CustomToken登录以在用户表中创建新用户”。你介意评论一下你的情况吗?或者回答我的一个问题:和我在这里发布的问题一样