微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

出现错误:verifyIdToken的第一个参数必须是Firebase ID令牌字符串

如何解决出现错误:verifyIdToken的第一个参数必须是Firebase ID令牌字符串

我正在通过XMLHttpRequest方法制作一个POST,然后尝试让tokenid在我的node.js文件中进行验证。但是,当我尝试验证令牌时,我一直遇到错误。我收到一条错误消息:

错误:verifyIdToken()的第一个参数必须是Firebase ID令牌字符串


这是我发出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());

这是我的node.js文件代码

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.bodyreq.body.token,但是错误仍然存​​在。当我尝试打印idtoken时,我得到[Object object]

解决方法

您正在使用名为“ idtoken”的字段名称发送数据:

xhr.send("idtoken=" + user.getIdToken());

但是您正在使用其他名称“令牌”在后端访问它:

.verifyIdToken(req.body.token)

我建议一般进行更多日志记录,以更好地了解双方的工作并调试正在发生的事情。

,

记录request.body对象时会得到什么?您已经安装了nodejs body parser,对吗?您是否在使用自己的NodeJS服务器(我几乎可以肯定使用)?但是我的问题是为什么不使用Firebase环境?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?