我正在关注此https://www.codemag.com/Article/2001081/Nest.js-Step-by-Step-Part-3-Users-and-Authentication在nestJS中使用护照实现jwt,一切都按预期工作,但是我对这种方法有一个澄清,如果我们使用 UseGuards(@AuthGurads()),应用程序知道使用 passportstrategy 来验证令牌并调用 validate 方法以进一步进行,但是为什么护照策略知道正确的 jwt 策略选择用于调用 validate 方法的类,没有明确提到我们要求护照策略使用 jwtStrategy 类并且它不是默认导出,但是在验证令牌后,passportstrategy 如何调用正确的 JwtStrategy 类进行验证方法?
问问题
282 次
1 回答
1
答案的重要内容在此代码块中:(从链接文章中提取)
@Module({
imports: [ ...,
PassportModule.register({
defaultStrategy: 'jwt',
property: 'user',
session: false,
}), ...
],
controllers: [AuthController],
providers: [AuthService, JwtStrategy],
exports: [PassportModule],
})
export class AuthModule {}
defaultStrategy
告诉Nest“当我使用时AuthGuard()
,以这个策略作为使用的策略” 。在这种情况下,'jwt'
。每个护照策略都有一个默认的护照名称,以了解正在使用的策略。在passport-jwt
它的情况下(惊奇,惊奇)'jwt'
于 2021-03-15T21:14:22.770 回答