3

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

4

2 回答 2

3

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

于 2020-10-29T17:07:10.343 回答
3

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

ExtractJwt.fromAuthHeaderAsBearerToken

在文档中描述)由它工作的自定义一个。

const fromFastifyAuthHeaderAsBearerToken = (request: FastifyRequest): string => {
const auth = request.headers['authorization'];
const token = auth?.split(' ')[1];
return token;
}
于 2021-01-17T03:23:55.370 回答