我使用passport jwt
策略,这是我的代码片段:
'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?