0

我正在关注此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 类进行验证方法?

4

1 回答 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 回答