Я пытаюсь написать промежуточное ПО для аутентификации. Проблема в том, что моя установка выдает сообщение «Без аутентификации» каждый раз, когда я пытаюсь что-то сделать.
Мое промежуточное ПО:
@Middleware()
export class AuthMiddleware implements NestMiddleware {
constructor(
@Inject(constants.logger) private logger: Winston,
){}
resolve(...args: any[]): ExpressMiddleware {
return passport.authenticate('jwt', { session: false });
}
}
JwtStrategy класс:
@Component()
export class JwtStrategy extends Strategy {
constructor(
private readonly authService: AuthService,
@Inject(constants.config) private readonly config: Config,
) {
super(
{
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
passReqToCallback: true,
secretOrKey: config.JWT_SECRET,
},
async (req, payload, next) => {
console.log('hello from verifycb');
next(null, payload);
},
);
passport.use('jwt', this);
}
public async verify(req, payload: TokenData, done) {
console.log('JwtStrategy::verify(req, payload)', {req, payload});
const isValid = await this.authService.isUserValid(payload);
if (!isValid) {
return done('Unauthorized 22', false);
}
done(null, payload);
}
}
Я уверен, что звонило мое промежуточное ПО. Я использую это странным образом или как?