Показать сообщение отдельно
  #16 (permalink)  
Старый 11.02.2022, 16:22
Кандидат Javascript-наук
Отправить личное сообщение для Raadsert Посмотреть профиль Найти все сообщения от Raadsert
 
Регистрация: 09.12.2021
Сообщений: 100

Сообщение от ksa Посмотреть сообщение
Ты лучше напиши что ты собрался этим кодом получить?
Я собирался получить значение http-заголовка "test", который присваивается в index.html:

let request = new XMLHttpRequest();
request.open('GET', document.location, false);
request.setRequestHeader('test', 'test-info');
request.send(null);
request.getAllResponseHeaders().toLowerCase();


Вот тут, если заголовок существует, он должен передать его к req.user:

app.use(express.static(`${__dirname}/auth`), (req, res, next) => {
  if (req.headers.test) {
    req.user = req.headers.test
    next()
  }
  next()
})


После чего в app.get, если req.user существует, вместо обычной страницы index.html вывести информацию из http-заголовка "<h1>${req.user}</h1>":

app.get('/auth', (req, res) => {
  if (req.user) return res.status(200).send(`<h1>${req.user}</h1>`);
  else return res.status(200).send(`<h1>None</h1>`);
})


Дело в том что последняя часть не возвращает h1 с каким бы то ни было значением. Почему так происходит, и как вернуть результат присваиваемого http-заголовка через сервер обратно в клиент?

p.s. На сколько я понял так и работает система аутентификации, только клиент отправляет jwt-токен на сервер (вместо заголовка "test": "test-info"), он сравнивает токен с тем что хранится у него и при положительном результате отправляет клиенту некую информацию с ограниченным доступом (в случае выше это просто h1 с информацией из http-заголовка "test").
Ответить с цитированием