node.js - 由于 async-await,我在 JWT 令牌验证中遇到了一些错误
问题描述
我目前正在学习制作API,所以我需要学习的最后一部分是JWT令牌验证以授权路由。我的身份验证工作正常,但我需要传递响应用户的数据。
我尝试过的代码有一些我无法理解的错误,但我认为我搞砸了异步等待部分。当我打电话时,User.findById(jwt_payload.user._id)
我必须获取用户的数据,目前我得到空值。我被困在那部分没有解决它的线索。
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const { User } = require('../models/user');
const config = require('../config/database');
module.exports = async function(passport){
let opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('jwt');
opts.secretOrKey = config.secret;
passport.use(new JwtStrategy(opts, async function(jwt_payload, done){
//console.log(jwt_payload.user._id);
const user = await User.findById(jwt_payload.user._id);
//console.log(user);
if(user){
return done(null,user);
}
else{
return done(null,false);
}
}));
}
如果有人帮助我理解我所犯的错误部分,我将不胜感激
解决方案
推荐阅读
- scala - mutable.PriorityQueue 为具有更多属性的类自定义排序
- serverless-framework - provider.logRetentionInDays 未按预期工作
- python - Pathlib:如何删除 path.stem 的前 n 个字符
- php - 目标类不存在/ Laravel - 作曲家
- vba - 设置焦点不适用于 Microsoft 访问
- office-js - 在没有 Yeoman 生成器的情况下使用 ExpressJS 配置 Office JS 单词加载项
- ruby-on-rails - 以 ruby 语言集成 Microsoft Teams api
- python - 我想在客户注册我的网络应用程序时为他们创建一个唯一 ID
- istio - Istio EnvoyFilter 速率限制
- python - 用python cx_Oracle比较不同oracle数据库中的两张表