NestJS 中带有 openid-client 和 passport 的未知身份验证策略 "oidc"
Unknown authentication strategy "oidc" with openid-client and passport in NestJS
我正在关注 this article 在 NestJS 中实现 OIDC 登录。
但我被困住了,不知道如何进行。
我已经完成了文章中描述的内容,它的工作原理是我被重定向到输入我的用户名和密码,但是当我被重定向回我的应用程序时,我回到了路径 /auth/callback
而不是显示我的应用程序被记录in,它显示一个只有字符 {}
的空白页。当我调查后端时,我可以看到以下错误:
GeneralExceptionFilter: Error: Unknown authentication strategy "oidc"
at attempt (/Users/roberto/dev/ps360/packages/app/node_modules/passport/lib/middleware/authenticate.js:193:39)
at authenticate (/Users/roberto/dev/ps360/packages/app/node_modules/passport/lib/middleware/authenticate.js:370:7)
at Object.use (/Users/roberto/dev/ps360/node_modules/@nestjs/core/middleware/utils.js:51:24)
at /Users/roberto/dev/ps360/node_modules/@nestjs/core/router/router-proxy.js:9:23
at /Users/roberto/dev/ps360/node_modules/@nestjs/core/middleware/middleware-module.js:157:28
at Layer.handle [as handle_request] (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/layer.js:95:5)
at /Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/index.js:281:22
我一直在兜兜转转,Google 没有找到任何线索。有人有什么想法吗?
我想通了。我正在回答我自己的问题,以防其他人遇到这个罕见的问题。
出于某种原因,安装了 passport
的流氓版本,即使 package.json 只要求 "passport": "^0.4.1"
也安装了 passport v0.5.2 的流氓副本在 node_modules。我无法解释它是如何结束的。无论如何,它导致了一些不匹配,导致 @nestjs/passport
无法正确注册身份验证策略。
我正在关注 this article 在 NestJS 中实现 OIDC 登录。
但我被困住了,不知道如何进行。
我已经完成了文章中描述的内容,它的工作原理是我被重定向到输入我的用户名和密码,但是当我被重定向回我的应用程序时,我回到了路径 /auth/callback
而不是显示我的应用程序被记录in,它显示一个只有字符 {}
的空白页。当我调查后端时,我可以看到以下错误:
GeneralExceptionFilter: Error: Unknown authentication strategy "oidc"
at attempt (/Users/roberto/dev/ps360/packages/app/node_modules/passport/lib/middleware/authenticate.js:193:39)
at authenticate (/Users/roberto/dev/ps360/packages/app/node_modules/passport/lib/middleware/authenticate.js:370:7)
at Object.use (/Users/roberto/dev/ps360/node_modules/@nestjs/core/middleware/utils.js:51:24)
at /Users/roberto/dev/ps360/node_modules/@nestjs/core/router/router-proxy.js:9:23
at /Users/roberto/dev/ps360/node_modules/@nestjs/core/middleware/middleware-module.js:157:28
at Layer.handle [as handle_request] (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/layer.js:95:5)
at /Users/roberto/dev/ps360/node_modules/@nestjs/platform-express/node_modules/express/lib/router/index.js:281:22
我一直在兜兜转转,Google 没有找到任何线索。有人有什么想法吗?
我想通了。我正在回答我自己的问题,以防其他人遇到这个罕见的问题。
出于某种原因,安装了 passport
的流氓版本,即使 package.json 只要求 "passport": "^0.4.1"
也安装了 passport v0.5.2 的流氓副本在 node_modules。我无法解释它是如何结束的。无论如何,它导致了一些不匹配,导致 @nestjs/passport
无法正确注册身份验证策略。