0

新手到 NestJS,我尝试实现 Passport,当我构建应用程序时,得到:

身份验证策略必须有名称

在 auth.module 中:

@Module({
    imports: [
        UserModule,
        PassportModule.register({
            defaultStrategy: 'jwt',
            property: 'user',
            session: false,
        }),
        JwtModule.register({
            secret: process.env.SECRET,
            signOptions: {
                expiresIn: process.env.EXPIRESIN
            }
        })
    ],
    providers: [
        AuthService,
        JwtStrategy
    ],
    ...
    })

策略(JwtStrategy 类)看起来像:

@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
    constructor(
        private readonly authService: AuthService
    ) {
        super(
            {
                jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
                secretOrKey: process.env.SECRET
            }
        )
    }

    public async validate(payload: JwtPayload): Promise<any> {
        return null;
    }
}

几个小时后,我没有找到任何回应......当然我错过了一些东西,但不知道是什么。

谢谢你的回答...

4

1 回答 1

0

对不起我的不好...我刚刚意识到我在不同的包中有两种策略...

于 2021-08-30T12:05:31.197 回答