Raadsert, есть подозрение что ты просто говнокодишь...
Как вариант сделай простенькую модель сайта. На ней можно буде лучше понять чего ты так гоношишь. |
Raadsert, вот почитай доку...
https://nodejsdev.ru/doc/request-object/ Вот пример авторизации... https://nodejsdev.ru/doc/jwt/ |
Цитата:
app.use(express.static(`${__dirname}/auth`), (req, res, next) => { res.status(200).sendFile(path.resolve(__dirname, 'auth', 'index.html')); next() }) app.use(express.static(`${__dirname}/auth`), (req, res, next) => { if (req.headers.test) { req.user = req.headers.test next() } next() }) 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>`); }) index.html загружает скрипт XML. До этого загружал файл в app.get . Подскажите, что я делаю не так? |
Цитата:
|
Raadsert, такую вот статейку почитай...
https://medium.com/nuances-of-progra...s-80915da83c60 |
Цитата:
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"). |
Raadsert, я тебе статейку выше для чего дал?
Для начала просто почитай для чего Цитата:
Цитата:
Цитата:
Т.е. просто писать аглицкие слова в произвольном порядке - не значит программировать. |
Цитата:
express.staticиспользуется совместно с "use" для указания директории статичных файлов, я знаю. res.status(200).sendFile(...)"sendFile" используется для отправки файлов в клиент, иначе как мне доставить скрипт на сторону клиента?! Дело в том что я неправильно указал статут ответа? Я всё прочитал, но всё равно не могу понять. Единственное что мне приходит в голову это то что ответ с сервера я должен обрабатывать скриптом на стороне клиента и все передаваемые сервером данные размещать при помощи скрипта. |
Что-то туго идет... :(
Как только ты объявил некую директорию через express.static, файлы из нее будет отправлять сам экспресс... Как только что-то отправили клиенту - вся твоя дальнейшая "обработка" теряет всякий смысл. Если ты хочешь что-то взять из заголовка и запихать его куда-то - это нужно делать после основных обработчиков/парсеров экспресс. Вот тебе еще ссылочка на доку про сам экспресс https://expressjs.com/ru/guide/routing.html |
Цитата:
|
Часовой пояс GMT +3, время: 07:39. |