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;
}
所以我用 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;
}