Как получить токен аутентификации, отправленный клиентом на сервер node js? - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу отправить токен авторизации на node js бэкэнд-сервер. Это мой файл на стороне клиента. js file.

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 Ответ

1 голос
/ 03 апреля 2020

Вам не нужно ждать, пока запрос XHR будет выполнен, прежде чем устанавливать заголовок. Вместо этого вы должны установить заголовок перед отправкой запроса:

var xhr = new XMLHttpRequest();
xhr.open('POST', "/" , true);
xhr.setRequestHeader('authToken', idToken);
xhr.send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...