NestJS Fastify 认证

NestJS Fastify Authentication

所以我用 Fastify 替换了 ExpressJS,但我的问题是 Nest-Passport 不支持 fastify,我们有 Nest-Passport 的替代品吗?或关于如何使用令牌在 nestJS 中保护 RestAPI 的任何解决方案?

我知道没有即时的 Fastify NestJJS 身份验证包(我确定那里有东西),但是 I do have a sample of JWT authentication with Fastify and NestJS without Passport。这个想法是利用 Nest 的 @nestjs/jwt 包或直接使用 jsonwebtoken,并用它创建身份验证令牌,而不是委托给 Passport。这实际上是我更喜欢的一种方法,因为我发现 Passport 有时有点太神秘了。

我不知道这是不是正确的方式。但是如果我更改默认的 jwt 提取器

ExtractJwt.fromAuthHeaderAsBearerToken

(described within the doc ) 通过一个自定义的它有效。

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