问题描述
我正在通过XMLHttpRequest
方法制作一个POST
,然后尝试让tokenid
在我的node.js
文件中进行验证。但是,当我尝试验证令牌时,我一直遇到错误。我收到一条错误消息:
这是我发出POST
请求的方式:
var xhr = new XMLHttpRequest();
xhr.setRequestHeader(
"Content-Type","application/x-www-form-urlencoded"
);
xhr.onload = function() {
console.log("Signed in as: " + xhr.responseText);
};
xhr.send("idtoken=" + user.getIdToken());
app.post("/tokensignin",(req,res) => {
admin
.auth()
.verifyIdToken(req.body.idtoken)
.then(function(decodedToken) {
let uid = decodedToken.uid;
console.log("uid is " + uid);
})
.catch(function(error) {
console.log(error);
});
});
我尝试使用req.body
和req.body.token
,但是错误仍然存在。当我尝试打印idtoken
时,我得到[Object object]
解决方法
您正在使用名为“ idtoken”的字段名称发送数据:
xhr.send("idtoken=" + user.getIdToken());
但是您正在使用其他名称“令牌”在后端访问它:
.verifyIdToken(req.body.token)
我建议一般进行更多日志记录,以更好地了解双方的工作并调试正在发生的事情。
,记录request.body
对象时会得到什么?您已经安装了nodejs body parser
,对吗?您是否在使用自己的NodeJS服务器(我几乎可以肯定使用)?但是我的问题是为什么不使用Firebase环境?