Javascript 如何在express中获取请求头?

Javascript 如何在express中获取请求头?,javascript,node.js,express,jwt,Javascript,Node.js,Express,Jwt,我正在编写授权代码。单击登录按钮后,我创建了一个带有 res.header('Authorization', token) 管理员登录路由器: router.post('/admin_login', async (req, res) => { const adminDB = data.admins; const admin = adminDB.find(admin => req.body.email === admin.email) if (!admin)

我正在编写授权代码。单击登录按钮后,我创建了一个带有

res.header('Authorization', token)
管理员登录路由器:

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')
    }
}
第一个img:管理路由器中的头
第二个img:点击登录按钮后管理员登录路由器中的标题




请帮助我

从文档中可以看出,Express对象或其扩展的Node.js上没有
header
方法

Express文档说明,要检索标题,请使用:

请求获取(字段)

返回指定的HTTP请求标头字段(不区分大小写匹配)

因此:

或者您可以使用from
输入消息

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

(注意小写,Node.js在构建对象时使标题名称小写。)

U应该使用req.get(headerName)方法

我写了它,但仍然没有获得授权标题。@AliceArgent-我不清楚您的各个部分是什么。您说过要在响应上设置标题,但您也希望在请求上看到它?只有请求者发送了它,你才会在请求中看到它。我不知道。谢谢,你)也许,我理解我的错误。我将尝试在代码中发送头以进行验证。
const token = req.headers["authorization"];