我试图在node.js中创建JWT令牌,以便与firebase中的REST api一起使用,但是当我尝试使用它们时,我收到错误"错误:声明无效'孩子'在auth标题中。"
这是我的代码
http.createServer(function (req, res) {
var payload = {
uid: "bruh"
};
var token = jwt.sign(payload, sact["private_key"], {
algorithm: 'RS256',
issuer: sact["client_email"],
subject: sact["client_email"],
audience: 'https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit',
expiresIn: '3600s',
jwtid: sact["private_key_id"],
header: {
"kid": sact["private_key_id"]
}
});
res.writeHead(200);
res.end("It worked. (" + token + ")");
}).listen(port);
这些是我的要求
var http = require('http');
var jwt = require('jsonwebtoken');
答案 0 :(得分:3)
请使用returnSecureToken:true,并使用正确的拼写 我希望它能解决auth标头中的无效声明“孩子”的问题。
答案 1 :(得分:1)
这是一个问题,因为您需要生成Firebase ID令牌,而不是Firebase REST API的访问令牌。
要生成REST API令牌,我会使用遗留的Firebase Token Generator library,它仍能很好地工作(但只生成REST令牌,而不是通用访问令牌)。
请注意,您的Firebase数据库密码现在位于控制台左上角的齿轮图标下。