【发布时间】:2019-02-24 06:04:32
【问题描述】:
我是使用 Nodejs 的新手,但我承认我很喜欢,我使用令牌 Jwt 来验证用户,简单的事情,他们登录并赢得令牌。但是我想在路由上设置权限,我一直在阅读有关 express-jwt-permissions 的内容,但是在我的应用程序中使用它时,我在 POSTMAN 收到以下错误:UnauthorizedError:未找到用户对象“user”。检查您的配置。
customerRoutes.js
const router = require('express').Router();
var jwt = require('jsonwebtoken');
var guard = require('express-jwt-permissions')()
const customerController = require('../controllers/customerController');
function verifyToken(req, res, next) {
// Get auth header value
const bearerHeader = req.headers['authorization'];
// Check if bearer is undefined
if(typeof bearerHeader !== 'undefined') {
// Split at the space
const bearer = bearerHeader.split(' ');
// Get token from array
const bearerToken = bearer[1];
// Set the token
req.token = bearerToken;
// Next middleware
next();
} else {
// Forbidden
res.sendStatus(403);
}
}
router.post('/posts',verifyToken,guard.check('admin'),
customerController.posts);
module.exports = router;
这是我的令牌的外观:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwZXJtaXNzaW9ucyI6WyJhZG1pbiJdLCJpYXQiOjE1Mzc0MDg0NzMsImV4cCI6MTUzNzQ0ODQ3M30.8l1vezWzKClnRU-Gmb5pKc3NzQ0ODQ3M30.8l1vezWzKClnRU
【问题讨论】:
-
您的令牌中没有用户字段。 '{"permissions":["admin"],"iat":1537408473,"exp":1537448473}'
-
我尝试该令牌,但我收到相同的错误:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7InBlcm1pc3Npb25zIjpbInVzZXIiLCJhZG1pbiJdfSwiaWF0IjoxNTM3NDA5MjY2LCJleHAiOjE1Mzc0NDkyNjZ9.fcwnIwm1Inup5M_d_N67230qfOulNBObinwx-z6LrtA 跨度>
-
你的token应该使用split('.'),可以打印bearer[1],理论上应该是'eyJwZXJtaXNzaW9ucyI6WyJhZG1pbiJdLCJpYXQiOjE1Mzc0MDg0NzMsImV4cCI6MTUzNzQ0ODQ3M30',然后查看,解码步骤我没看到
标签: javascript node.js jwt token