NodeJS 使用 JWT 令牌授权
NodeJS Authorize with JWT token
我正在尝试使用 JWT 令牌授权用户,然后再允许他们获取“欢迎”页面。
这是端点的代码;
var apiRoutes = express.Router();
apiRoutes.use(bodyParser.urlencoded({ extended: true }));
apiRoutes.use(bodyParser.json());
apiRoutes.use(verifyToken);
apiRoutes.get('/', welcome)
这是 verifyToken
函数;
var verifyToken=function (req, res,next) {
var token = req.body.token || req.query.token || req.headers['token'];
if (token) {
jwt.verify(token, config.secret, function (err, currUser) {
if (err) {
res.send(err);
} else {
req.currUser = currUser;
next();
}
});
}
else {
res.status(401).send("Invalid Access");
}
};
module.exports=verifyToken;
这是欢迎页面;
module.exports=function(req, res) {
res.send('Welcome..!! Now you are now authenticated !');
};
但是当我尝试在 Postman 中获取端点时,我得到了这个;
Cannot GET /
我试过将令牌作为参数放入 Postman,作为原始 body JSON,放在 headers 中,作为表单,但仍然无法获得欢迎页面.我错过了什么?
为确保您的中间件在端点被调用时运行,您可以输入如下内容:
在你的 server.js
app.use('/api', apiRoutes);
在你的路线中 fils
apiRoutes.get('/', verifyToken, welcome);
并将其从使用中删除
我正在尝试使用 JWT 令牌授权用户,然后再允许他们获取“欢迎”页面。
这是端点的代码;
var apiRoutes = express.Router();
apiRoutes.use(bodyParser.urlencoded({ extended: true }));
apiRoutes.use(bodyParser.json());
apiRoutes.use(verifyToken);
apiRoutes.get('/', welcome)
这是 verifyToken
函数;
var verifyToken=function (req, res,next) {
var token = req.body.token || req.query.token || req.headers['token'];
if (token) {
jwt.verify(token, config.secret, function (err, currUser) {
if (err) {
res.send(err);
} else {
req.currUser = currUser;
next();
}
});
}
else {
res.status(401).send("Invalid Access");
}
};
module.exports=verifyToken;
这是欢迎页面;
module.exports=function(req, res) {
res.send('Welcome..!! Now you are now authenticated !');
};
但是当我尝试在 Postman 中获取端点时,我得到了这个;
Cannot GET /
我试过将令牌作为参数放入 Postman,作为原始 body JSON,放在 headers 中,作为表单,但仍然无法获得欢迎页面.我错过了什么?
为确保您的中间件在端点被调用时运行,您可以输入如下内容: 在你的 server.js
app.use('/api', apiRoutes);
在你的路线中 fils
apiRoutes.get('/', verifyToken, welcome);
并将其从使用中删除