node.js - 未经授权的 nodejs 的 Passport-JWT 身份验证
问题描述
我是nodejs的新手。我需要使用 nodejs 创建和身份验证。在这里我找到了几个答案,但他们也使用了旧版本。我在这里使用这些版本
我使用此代码在我的节点应用程序中创建了 passport.js 文件。
const JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
const config = require('./db');
const User = require('./models/user');
const opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = config.secret;
module.exports = (passport)=>{
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findUserbyId({_id: jwt_payload._doc._id}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
}
});
}));
};
我使用这个路由方法来创建一个带有身份验证的路由。
router.post('/profile',
passport.authenticate('jwt'),{ session: false },
(req, res)=> {
res.json({user:req.user});
});
我使用邮递员创建令牌并检查身份验证。
我无法理解为什么它错了。findUserById 方法如下
module.exports.findUserbyId = (id, callback)=>{
User.findOne(id, callback);
}
我的代码有什么问题?为什么它每次都给
未经授权
在我的邮递员申请中。
解决方案
推荐阅读
- node.js - 是否可以将gridjs结果定向到控制台
- r - R将向量拆分为重叠的子向量并连接第一个和最后一个元素
- powershell - 发送电子邮件 Poweshell
- php - 我想知道一个 php 7.4 在登录脚本上给我带来了麻烦
- python - Jupyter dash 冻结并且不更新绘图
- java - 如何在 Android Studio 上使用 Gmail API 获取用户的电子邮件?
- python - Python concatenate_videoclips,奇怪的音频和视频故障
- kubernetes - 如何通过我的 Kubernetes(OpenShift) Ingress 代理外部站点?
- java - 在我删除额外的 -wal 和 -shm 文件之前,应用程序不会读取下载的 Room 数据库文件
- python - python在矩阵二维数组中打印