backend node js сервер не принимает max-http-header-size - PullRequest
0 голосов
/ 20 марта 2020

У меня есть приложение реагирования во фронтэнде и node js бэкэнд. Я отправляю аутентификационный заголовок на сервер с размером более 8 Кбайт и получаю

http://localhost:3050/api/sellers 431 (Request Header Fields Too Large)

Я пробовал разные вещи, сначала добавив node --max-http-header-size=150000, который был рекомендован везде, где я искал, проблемы с GitHub и переполнение стека.

Итак, я добавил его в свой пакет. json файл вот так.

"start": "npm run db:update && node --max-http-header-size=150000000 src/server.js",
"dev": "npm run db:update && nodemon --max-http-header-size=150000000 --watch src --watch package.json --inspect=0.0.0.0:9229 src/server.js",

Когда я запускаю контейнер docker, я вижу

api            | [nodemon] 1.19.4
api            | [nodemon] reading config ./package.json
api            | [nodemon] to restart at any time, enter `rs`
api            | [nodemon] or send SIGHUP to 71 to restart
api            | [nodemon] watching dir(s): src/**/* package.json
api            | [nodemon] watching extensions: js,mjs,json
api            | [nodemon] starting `node --max-http-header-size=150000000 --inspect=0.0.0.0:9229 src/server.js`
api            | [nodemon] spawning
api            | [nodemon] child pid: 84

Так что все хорошо, но когда я go реагирую на мой клиент приложения и пу sh запрос. Я все еще получаю 431

При необходимости код выглядит следующим образом:

fetch(
      '/api/sellers', {
        method: 'GET',
        headers: {
          'authorization': 'Bearer ' + localStorage.getItem('token'),
        },
      }
    )

* localStorage.getItem('token') - это то, откуда возникает проблема из-за большого токена. Кодовая база действительно старая и очень грязная, поэтому я хотел бы исправить ее извне, вроде бы борясь с этим в течение последних нескольких дней.

Я также обновился с NODE -6 до 11, что позволяет --max-http-header-size И теперь нет вариантов, и да, я искал несколько способов.

...