我正试图使路由可访问,只有当你使用下面的中间件与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 || "";