Я использую JSON Web Tokens и пакет passport-jwt.
const payload = {
id: this.id,
name: this.name,
email: this.email,
avatar: this.avatar,
isAdmin: this.isAdmin
};
JWT.sign( payload, keys.secretOrKey, {
algorithm: 'HS256',
expiresIn: this.expiresIn,
jwtid: await this.getJwtId()
});
и внутри промежуточного программного обеспечения
module.exports = ( passport ) => {
passport.use(
new JwtStrategy( options, async ( jwt_payload, done ) => {
User.findById( jwt_payload.id ).then( ( user ) => {
if ( user ) {
return done( null, user );
} else {
return done( null, false );
}
});
})
);
};
Могу ли я пропустить User.findById и использовать только jwt_payload ?
Примерно так:
module.exports = ( passport ) => {
passport.use(
new JwtStrategy( options, ( jwt_payload, done ) => {
return done( null, jwt_payload );
})
);
};