You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS使用AuthGuard('local')报Unknown authentication strategy "local"错误如何解决?

问题解决方案

你遇到的Unknown authentication strategy "local"错误是以下几个常见配置遗漏导致的,按顺序排查即可:

1. 检查passport-local依赖是否安装

Nest的Passport本地策略依赖官方的passport-local包,很多开发者容易遗漏安装,执行以下命令安装依赖:

npm install passport-local
npm install @types/passport-local -D

如果使用yarn则执行:

yarn add passport-local
yarn add @types/passport-local -D

2. 根模块AppModule必须导入JwtAuthModule

你的LocalStrategy是注册在JwtAuthModule的providers列表中的,只有当JwtAuthModule被导入到根模块AppModule时,Nest才会实例化LocalStrategy,完成local策略的注册。同时你在AppController中注入了JwtAuthService,也需要导入JwtAuthModule才能正确注入该服务。
修改你的app.module.ts代码如下:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { JwtAuthModule } from './jwt-auth/jwt-auth.module';

@Module({
  imports: [JwtAuthModule], // 新增这行导入认证模块
  controllers: [AppController],
})
export class AppModule {}

3. 可选验证项

如果完成上述两步后仍报错,检查以下两点:

  • 确认local.strategy.ts文件路径正确,没有拼写错误,确实被正确导入到JwtAuthModule的providers列表中
  • 确认PassportStrategy第二个参数的local字符串没有拼写错误,和AuthGuard('local')中传入的字符串完全一致

内容的提问来源于stack exchange,提问作者adhi narayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:54:05