Стратегия JWT используется здесь.
passport.authenticate('jwt', {session: false})
Этот код является промежуточным программным обеспечением, которое берет ключ токена из авторизации заголовков запроса, а затем проверяет ключ токена, если он правильный, и запускает метод passport.use(new JwtStrategy(opts, (jwt_payload, done)
.
Затем ваш код (я так и предполагал):
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
done(null, user);
});
// jwt
let opts = {
jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('jwt'),
secretOrKey: "secret"
};
passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
UserRepository.get_user_by_id(jwt_payload.user.id, (err, user) => {
if (err) {
return done(err, false);
}
if (user) {
return done(null, UserRepository.set_existing_user_for_token_key(user));
} else {
return done(null, false);
}
});
}));
Возвращает пользователя, а затем сериализует в json, когда вы можете использовать функцию router.get (or another method)
.