如何解决 Nestjs 中的“策略#authenticate 必须被子类覆盖”错误
Posted
技术标签:
【中文标题】如何解决 Nestjs 中的“策略#authenticate 必须被子类覆盖”错误【英文标题】:How can I solve "Strategy#authenticate must be overridden by subclass" error in Nestjs 【发布时间】:2020-10-31 12:01:30 【问题描述】:我在向 auth/login 发出 POST 请求时收到此错误
[Nest] 8344 - 10/07/2020, 17:59:32 [ExceptionsHandler] Strategy#authenticate must be overridden by subclass +811577ms
错误:策略#authenticate 必须被子类覆盖 在 LocalStrategy.Strategy.authenticate (/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/passport-strategy/lib/strategy.js:21:9) 尝试(/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/passport/lib/middleware/authenticate.js:366:16) 在验证(/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/passport/lib/middleware/authenticate.js:367:7) 在/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/@nestjs/passport/dist/auth.guard.js:87:3 在新的承诺 () 在/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/@nestjs/passport/dist/auth.guard.js:79:83 在 MixinAuthGuard。 (/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/@nestjs/passport/dist/auth.guard.js:48:36) 在 Generator.next () 在/home/damy/Projects/sn-ps/Typescript/simple-crud-with-nest/node_modules/@nestjs/passport/dist/auth.guard.js:20:71 在新的 Promise ()
这是我的本地策略代码 nestjs local strategy code
【问题讨论】:
【参考方案1】:您需要安装和使用passport-local
。 passport
是一个抽象实现,它的Strategy
是一个abstract
类,这意味着它不能直接运行。如果您改用passport-local
,则该实现已经存在。
【讨论】:
这对我有用!如果你使用passport-jwt
,你也可以从那里导入Strategy
@DanielRodríguezMeza 从哪里导入?
@MarcusChristiansen 喜欢这个import Strategy from 'passport-jwt';
谢谢。解决了我的问题。我是从 'passport'
导入的以上是关于如何解决 Nestjs 中的“策略#authenticate 必须被子类覆盖”错误的主要内容,如果未能解决你的问题,请参考以下文章
NestJS:解决 NestMiddleware 中的依赖关系?
如何解决在 NestJs 应用程序中应该是 Injectable 类的未实例化属性?