有可能在EJS模板的链接上传递请求头吗?表达/ node . js



我正试图使路由可访问,只有当你使用下面的中间件与JWT进行身份验证,但我似乎找不到一种方法来传递令牌从客户端获取请求?它在邮差上工作得很好,如果我使用从客户端取回它不会重定向到我想去的页面

auth.js

async function (req, res, next) {
const token = req.header('x-auth-token');
if (!token) {
return res.status(401).json({ msg: 'Forbidden' });
}
try {
const decoded = jwt.verify(token, process.env.TOKEN_SECRET);
req.user = decoded.user;
next();
} catch (e) {
return res.status(401).json({ err: 'fail' });
}
};

服务器端

router.get('/', auth, function (req, res, next) {
res.render('pages/person');
});

您可以简单地将token附加到请求中的headers,并将其与get甚至'delete '方法一起发送。

例如,在fetch方法中,您可以在客户端以这种方式附加令牌:
fetch('URL_GOES_HERE', { 
method: 'post', 
headers: new Headers({
'Authorization': YOUR_TOKEN, 
'Content-Type': 'application/x-www-form-urlencoded'
}), 
});
现在,您可以在节点应用程序中检索令牌:
const token = req.headers.authorization || "";

最新更新