如何使用 Nestjs 护照使用电子邮件而不是用户名

Dan*_*sti 1 passport.js nestjs

我正在尝试使用 Passport 和 NestJS 来实现 JWT 身份验证,默认实现工作完美。就我而言,我想使用“电子邮件”而不是用户名,但不幸的是,位于 local.strategy.ts 内的验证函数仅接受“用户名”,并且在没有用户名参数的情况下甚至不会调用。请指教。

参考我使用过的实现,我一步一步按照指南进行操作

https://docs.nestjs.com/security/authentication

小智 7

我同意米凯尔·莱维的观点。只需要在构造函数中将这些参数提供给父类即可

constructor(private authService: AuthService) {
  super({
    usernameField: 'email',
    passwordField: 'password',
  });
}

Run Code Online (Sandbox Code Playgroud)

您可以在此处进一步阅读文档https://docs.nestjs.com/security/authentication#customize-passport

希望这可以帮助