NestJS ускоряет аутентификацию

#passport.js #nestjs #fastify #nestjs-fastify

#passport.js #nestjs #ускоряет #nestjs-ускоряет

Вопрос:

Итак, я заменил ExpressJS на Fastify, но моя проблема в том, что Nest-Passport не поддерживает fastify, есть ли у нас альтернатива для Nest-Passport? или какие-либо решения о том, как защитить RestAPI в NestJS с помощью токена?

Ответ №1:

Я не знаю, правильно ли это. Но если я изменю jwt-экстрактор по умолчанию

ExtractJwt.fromAuthHeaderAsBearerToken

(описано в документе) с помощью пользовательского он работает.

 const fromFastifyAuthHeaderAsBearerToken = (request: FastifyRequest): string => {
const auth = request.headers['authorization'];
const token = auth?.split(' ')[1];
return token;
}
  

Комментарии:

1. Это была бы правильная ссылка github.com/mikenicholson /…

2. Вы также можете использовать его как в коде, подобном стратегии JWT jwtFromRequest: (request: fastify.FastifyRequest) => { console.log('As it is if not signed', request?.cookies?.Authentication); console.log('After unsigning the cookie', request?.unsignCookie(request.cookies?.Authentication)); }

Ответ №2:

Насколько мне известно, нет немедленного пакета аутентификации Fastify NestJJS (я уверен, что там что-то есть), но у меня есть образец аутентификации JWT с помощью Fastify и NestJS без паспорта. Идея состоит в том, чтобы использовать @nestjs/jwt пакет Nest или просто jsonwebtoken напрямую и создавать токены аутентификации с этим вместо делегирования в Passport. На самом деле это тот подход, который я предпочитаю, поскольку иногда я нахожу Passport слишком мистическим.