【发布时间】:2019-10-30 14:44:00
【问题描述】:
我使用passport jwt 策略,这是我的代码 sn-p:
'use strict';
const config = require('../config');
const User = require('../models/user.model');
const passportJWT = require('passport-jwt');
const ExtractJwt = passportJWT.ExtractJwt;
const JwtStrategy = passportJWT.Strategy;
const jwtOptions = {
secretOrKey: config.secret,
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken()
};
const jwtStrategy = new JwtStrategy(jwtOptions, (jwtPayload, done) => {
console.log(jwtPayload);
User.findById(jwtPayload.sub, (err, user) => {
if (err) return done(err, null);
if (user) {
return done(null, user)
} else {
return done(null, false)
}
})
});
exports.jwtOptions = jwtOptions;
exports.jwt = jwtStrategy;
我在这里设置策略,一切正常。现在我想创建端点以添加从令牌中检索到的 UserId 的文章(文章在其架构中具有 userId 字符串)。
我想如何从令牌中获取 userId?
在new JwtStrategy 中已经发生了这种情况,因为我有有效负载,可以让我使用findById 并因此验证调用,但我应该以某种方式重用这个文件还是创建新的名称,例如 getUserId?
【问题讨论】:
标签: node.js mongoose jwt passport.js passport-jwt