【发布时间】:2021-12-22 14:56:38
【问题描述】:
我想知道如何使用我的 JWT 令牌找到我的论坛
exports.getByOwnerID = function (req, res, next) {
Forum.find({createdBy: req.body.createdBy})
.then(doc => {
if(!doc) { return res.status(400).end();}
return res.status(200).json(doc);
})
.catch(err => next(err));
}
所以在这里我有我的功能来验证我的 JWT 令牌 比如我就是这样用的
这是我的路线: router.post('/',verifyToken,getOwner);
这是我的要求: 发布 http://localhost:8080/forum/getOwner 授权:不记名{token}
const extractToken = (rawTokenHeader) => {
if(!rawTokenHeader) { return undefined; }
// Remove bearer and extract token value
const temp = rawTokenHeader.split(' ');
if(!temp || temp.length != 2) { return undefined; }
// Return encoded token
return temp[1];
};
module.exports = function(req,res,next){
// Get authorization header
const rawTokenHeader = req.header('Authorization');
// Get token value
const token = extractToken(rawTokenHeader);
// No token -> No access
if(!token) {
console.log('No token in request');
// Access denied
return res.status(401).send('Access Denied');
}
// Verify token
try {
const decoded = jwt.verify(token, process.env.JWT_KEY);
req.token= decoded;
req.user = decoded;
//console.log(token.userID);
// Proceed
next();
} catch(err) {
console.error('Error in JWT check: ', err);
// Tell client something went wrong
res.status(400).send('Invalid Token');
}
}
const forumSchema = ({
forumName: {
type: String,
required: true,
},
forumDescription: {
type: String,
required: true,
},
createdBy: {
type: Schema.Types.ObjectId, ref: 'User'
},
published_on: {
type: String,
default: moment().format("LLL")
},
});
我已经尝试了很多东西,但我无法再解决它。我需要帮助
【问题讨论】:
-
您的问题提到了 JWT,但代码中不包含任何与 JSON Web Token 相关的说明。你实现了 JWT 吗?它是否被传递到服务器?如果是这样,以什么形式 - cookie,标题?你有解码 JWT 的中间件吗?
-
是的,等一下,我会把它放进去。
标签: javascript node.js mongodb express jwt