如何接收节点js服务器上客户端发送的身份验证令牌?

时间:2020-04-03 17:32:51

标签: node.js firebase xmlhttprequest

我想将身份验证令牌发送到节点js后端服务器。这是我的客户端index.js文件。

auth.onAuthStateChanged(user => {
    if(user!=null){
        auth.currentUser.getIdToken(/* forceRefresh */ true)
        .then((idToken) => {
            // Send token to your backend via HTTPS
            var xhr = new XMLHttpRequest();
            xhr.open('POST', "/" , true);
            xhr.onload = function(){
                if(this.status == 200){
                    xhr.setRequestHeader('authToken', idToken);
                }
            }
            xhr.send();
        })
        .catch(function(error) {
            console.log(error);
        });
    }
})

,使用以下代码,我正在接收令牌。

router.post('/', function(req, res) {
  authHeader = req.get('authToken');
  console.log(authHeader);
});

但是我在终端中获得authHeader的值为undefined。我该如何解决?

1 个答案:

答案 0 :(得分:1)

您无需等待XHR请求完成就可以设置标题。相反,您应该在发送请求之前设置标头:

var xhr = new XMLHttpRequest();
xhr.open('POST', "/" , true);
xhr.setRequestHeader('authToken', idToken);
xhr.send();