【发布时间】:2019-09-15 22:40:26
【问题描述】:
因此,在后端通过 firebase 的 admin SDK 生成了一个自定义令牌:
router.use('/get-token', (req, res) => {
var uid = "big-secret";
admin.auth().createCustomToken(uid)
.then(function(customToken) {
res.json({
instanceID: customToken
});
})
.catch(function(error) {
console.log("Error creating custom token:", error);
});
});
客户端前端应用程序然后获取 customToken 并向后端发出请求以进行验证:
const fbPrivateKey = serviceAccount.private_key;
const key = new NodeRSA(fbPrivateKey).exportKey('pkcs8-public-pem');
router.get('/verifyIdToken', cors(), (req, res) => {
jwt.verify(req.headers.authorization.split('Bearer ')[1], key, { algorithms: ['RS256'] }, function(err, decoded) {
console.log('err', err);
console.log('decoded', decoded);
});
这总是错误的消息:JsonWebTokenError: invalid signature
这需要签名吗?如果有人可以解释一下或有任何指示吗?
更新:
当运行req.headers.authorization.split('Bearer ')[1] 到jwt.io 时,表示签名无效,但随后我输入我的私钥(key)并验证。
我是否得到了不正确的方法调用或将错误的参数传递给jwt.verify()?
【问题讨论】:
标签: node.js firebase jwt firebase-admin