3

当尝试通过Google使用使用Flask-restful和firebase-token-generator-python库生成的自定义JWT令牌进行身份验证时,出现此错误。简而言之:Firebase:INVALID_TOKEN:无法验证MAC

ref.authWithCustomToken(authData)

错误消息:

INVALID_TOKEN: Failed to validate MAC.

我使用角2.0.0-beta.2 /离子2.应用程序正在使用cordova-plugin-googleplus一个机器人设备上测试(在Google Developer Console中有必要的凭据)。我最近在nginx服务器上启用了跨域请求。我无法在Firebase或SO上找到与此错误相关的任何文档。

任何想法?

+0

我得到这个错误。事实证明,我的代码中有一个错字,秘密没有像我想的那样通过。 – David

回答

4

问题在于通过authData.toString()(包括分隔符和引号)将身份验证令牌发送给Firebase,并将其格式化为JSON字符串。无论如何,这肯定会引发Failed to validate MAC错误。

+1

这里的MAC代表[消息认证码](https://en.wikipedia.org/wiki/Message_authentication_code)。这意味着身份验证令牌的内容没有正确签名。一种获得错误的方法确实是错误地对令牌进行编码。 –