Библиотека файлов cookie NPM неправильно анализирует перенаправленный HTTP-заголовок с повторяющимся значением - PullRequest
0 голосов
/ 12 октября 2018

За MDN заголовок Forwarded может иметь повторяющиеся значения:

Forwarded: for=192.0.2.43, for=198.51.100.17

Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"

Но всякий раз, когда я использую npm cookie (ссылка) для анализа значения заголовка получено неверное значение:

const cookie = require('cookie');
...
...
console.log(cookie.parse(req.headers.forwarded));

Ввод:

Ключ заголовка: Forwarded

Значение заголовка: for=192.0.2.43, for=198.51.100.17

Выход:

Это печатает значение { for: '192.0.2.43, for=198.51.100.17' }.

Но правильным выводом должен быть массив: { for: ["192.0.2.43", "198.51.100.17"] }

Я пробовал несколько библиотек разбора файлов cookie, и они не могут правильно анализировать повторяющиеся значения.Так какую библиотеку мне использовать?

1 Ответ

0 голосов
/ 13 октября 2018

Я закончил с циклом для каждого цикла, чтобы перебрать заголовки, но я все еще озадачен, почему это даже необходимо.

    if (req.headers.forwarded) {
        for (let current of req.headers.forwarded.split(",")) {
            if (cookie.parse(current)["for"]) {
                ip = ip + cookie.parse(current)["for"] + ", "
            }
        }

        if (ip.endsWith(", ")) {
            ip = ip.substring(0, ip.length -2);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...