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"];