我通过createCustomToken()创建了自定义身份验证令牌,请参见https://firebase.google.com/docs/auth/admin/create-custom-tokens。
但是稍后,当我尝试通过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身份验证令牌?
P.S。我要在Google Cloud Function端点中使用验证
解决方案:看来我刚刚找到了一个解决方案https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library,只需要从https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com抓取公钥并使用jsonwebtoken库进行验证...
答案 0 :(得分:1)
verifyIdToken
之类的名称是用于验证IdToken
,而不是自定义令牌。
CustomToken用于sign in
的客户端。可以使用简单的JWT验证(如您的解决方案)来验证此自定义令牌(它会在一小时后失效)。
但是IdToken
是另一回事,您需要使用firebase auth进行登录过程。
要在登录后从客户端获取Id Token
,这取决于客户端是Android,Web还是IOS。
可以在this section
IdToken
的代码。