Как получить заголовки запроса в express? - PullRequest
0 голосов
/ 01 марта 2020

Я пишу код для авторизации. После нажатия на кнопку для входа в систему я создаю новый заголовок с

res.header('Authorization', token)

admin_login router:

router.post('/admin_login', async (req, res) => {
    const adminDB = data.admins;
    const admin = adminDB.find(admin => req.body.email === admin.email)
    if (!admin) return res.status(400).send('Email in not found!')
    if (admin.password !== req.body.password) return res.status(400).send('Invalid password')
    const token = jwt.sign({ admin }, 'the_secret_key')
    res.header('Authorization', token)
    res.redirect('/admin')
})

Я получу заголовок авторизации после входа в систему в маршрутизаторе администратора, но я не получу Это. Я вижу заголовок авторизации в

Код для проверки:

const jwt = require('jsonwebtoken')

module.exports = (req, res, next) => {
    const token = req.header('Authorization')
    console.log(token)

    if (!token) return res.status(401).send('Access Denied')

    try {
        const verified = jwt.verify(token, 'the_secret_key')
        req.admin = verified
        next()
    } catch (e) {
        res.status(400).send('Invalid token')
    }
}

first img: заголовки в маршрутизаторе администратора
second img: заголовки в маршрутизаторе admin_login после нажатия на кнопку для входа в систему



Пожалуйста, помогите мне

Ответы [ 2 ]

1 голос
/ 01 марта 2020

Насколько я могу судить из документации, нет метода header для объекта Express Request или Node.js IncomingMessage it extends.

Документация Express гласит, что для получения заголовка вы используете get:

req.get(field)

Возвращает указанное поле заголовка HTTP-запроса (без учета регистра).

Итак:

const token = req.get("Authorization");

Или вы можете использовать headers object from IncomingMessage:

const token = req.headers["authorization"];

(Обратите внимание на нижний регистр, Node.js делает имена заголовков строчными при построении объекта.)

0 голосов
/ 02 марта 2020

U должен использовать метод req.get (headerName)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...