Заголовок Auth не отправляется с GET-запросами

В настоящее время у меня есть настройка экспресс-jwt и работа с Auth0. Если вы указываете токен авторизации в curl или postman, страница загружается корректно. Если вы используете браузер, промежуточное ПО express-jwt сообщает, что токен не был предоставлен, и если я проверяю заголовки запроса, то нет никакого заголовка auth.

Действительно ошеломляет мой разум по этому поводу, спасибо

** изменить, добавил код, который я использовал, например. Не уверен, что еще будет необходимо. Это просто простое приложение с JWT-аутентификацией.

exports.getTokenData = async function (req) {
try {
    if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') {
        let token = req.headers.authorization.split(' ')[1];
        if (!token) return false;

        let res = await axios({
            method: 'get',
            url: 'https://xelitexirish.eu.auth0.com/userinfo',
            headers: {Authorization: `Bearer ${token}`}
        });
        return res.data;
    } else return false;
} catch (err) {
    console.error(`Unable to fetch jwt data, Error: ${err.stack}`);
}

};

Спасибо

1 ответ

Браузер будет отправлять только "стандартные" заголовки для любого заданного HTTP-запроса. Я имею в виду, что когда вы добавляете заголовок в Postman / cURL, вы явно указываете HTTP-клиенту (Postman / cURL) отправить этот заголовок с запрос. Когда вы открываете URL в браузере, никто не говорит браузеру, что он должен отправить ваш пользовательский заголовок с запросом.

Вы сможете временно это сделать, установив mod_header в Chrome и добавив свой настраиваемый заголовок для запросов браузера, но в реальных приложениях токены обычно хранятся в файлах cookie или в localStorage.

Другие вопросы по тегам