问题标签 [nestjs-passport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
272 浏览

authentication - 将 NestJs Passport 配置提取到 npm 包中

我一直在用nestjs 开发一个微服务应用程序。我使用 Auth0 作为我的身份验证 * RBAC 提供程序,尽管这些细节与这个问题无关。

为了争论,假设我有 2 个服务,一个users服务和一个accounts服务。假设我的身份验证发生在users服务中,但是这两个服务都需要利用如下的身份验证保护。

如果我在我正在使用的服务中完成所有护照配置,它就可以工作。这是完整的配置。

auth.module.ts

jwt.strategy.ts

app.module.ts

同样,这一切正常,如果在尝试访问端点时未登录,我会得到 401。但是,当我将auth.module.tsandjwt.strategy.ts拉出到 npm 模块中并以完全相同的方式包含它时......我得到一个 500 并出现以下错误。

这是我package.json的私有 npm 模块...

...最后在这里我将它保存为依赖项,以供本地使用到我的users服务中。

任何帮助将不胜感激,看来我只是缺少一些小东西。提前致谢。

0 投票
0 回答
212 浏览

nestjs - 为什么nestjs服务没有注入护照策略?

我正在尝试使用nestjs制作应用程序

到目前为止,依赖注入到控制器中运行良好。

但是当我将服务注入护照策略时,注入不起作用。

我想authService注入googleStrategy.

这是我的模块代码。

auth.modules.ts

google.strategy.ts

在这种情况下,AuthService不注入。

当我使用装饰器AuthService手动注入时,注入成功。@InjectAuthService

为什么服务没有注入护照策略?

0 投票
1 回答
447 浏览

javascript - NestJS - 如何为响应设置“Access-Control-Allow-Origin”标头

我正在尝试在 NestJS 中设置响应标头,但不断收到以下错误:

跨域请求被阻止:同源策略不允许读取位于https://companyName.okta.com/app/companyName_imentorlocalhost_1/exk1hp5ht4vrEzqGg0h8/sso/saml?SAMLRequest=nVPLct..的远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。

我尝试在控制器中设置标题,但这不起作用:

auth.controller

还尝试在拦截器中设置标题。也没有用:

header.interceptor.ts

这是我的main.ts,我在其中启用了 CORS:

这是我的saml-strategy.ts文件,我将Passport策略定义为 SAML:

知道发生了什么吗?谢谢。

0 投票
0 回答
84 浏览

nestjs - 如何使用 Passport 定义 Nestjs 动态模块以进行身份​​验证

我正在尝试创建一个库来在项目之间共享我的身份验证模块。我在策略(发行者和受众)中设置了 2 个参数,以使用正确的身份服务器配置我的项目以验证 jwt。我已经按照https://dev.to/nestjs/advanced-nestjs-how-to-build-completely-dynamic-nestjs-modules-1370来实现它,但是 registerAsync 方法没有按预期工作(说“未知尝试调用经过身份验证的 API 时,控制台中的身份验证策略 "jwt"")。但是 register 方法工作正常。有人能帮我吗?我和你分享代码

授权模块

策略提供者从 ConfigService 注册参数

我如何在 app.module.ts 中使用 registerAsync 方法

0 投票
1 回答
201 浏览

nestjs - Nest JS - 尝试在 RolesGuard 中获取用户上下文时返回未定义

我正在尝试在 Nest JS API 中添加角色保护。我为此使用了 Passport、Jwt 身份验证。在我的 RolesGuard 类中,我提出了请求并从中获取用户以检查用户角色是否有效。我附上了下面的代码。

角色.guard.ts

}

这里的问题是 context.switchToHttp().getRequest() 返回对象,这是未定义的。所以我无法从中获取用户详细信息。在对这个错误进行一些研究后,我发现控制器中装饰器的顺序可能是问题所在。然后我更改了顺序,但问题仍然出现。贝娄我也添加了该代码。

用户控制器.ts

-谢谢-

0 投票
2 回答
526 浏览

authentication - NestJS 的 Passport 本地策略“验证”方法从未被调用

我正在尝试实施 Passport 本地策略,但 validate 方法不起作用。当我执行@UseGuards(AuthGuard("local")) 时,它会自动抛出未经授权的异常,而无需通过我编写的验证方法。我不知道我做错了什么,因为文档也是如此。

这是我的 LocalStrategy 类:

我的 AuthModule 导入:

示例用法:

0 投票
1 回答
269 浏览

amazon-cognito - nestjs jwt 令牌(COGNITO 生成)验证失败

我们的应用程序使用 COGNITO 用户池来启用 oauth2 的 SSO;登录成功后,COGNITO 生成令牌并返回;aAPI 将使用该令牌进行后续调用;我们的 API 受到 NESTJS AuthGuards 的保护;

问题是当我们通过在“授权”标头中传递任何垃圾来测试 API 时,例如“承载 xyz”,它可以工作并且不会抛出任何错误。

oauth2 代码,它与 COGNITO 对话以生成令牌;

NEST JS BearerStrategy 代码

JWT 策略类

现在我们正在使用身份验证卫士保护他们

不确定为什么 Passport 验证不起作用验证从 Bearer 和 JWT 策略调用的方法。而 Bearer 没有给出错误 JWT 抛出“cb: is not a function” nt 完全理解并且在网络中也没有太多帮助。

0 投票
1 回答
562 浏览

nestjs - Nestjs JwtStrategy 访问上下文

我的 WebSocket 中有一个UseGuard。实际上,这个守卫是一个JwtAuthGuard延伸的AuthGuard('jwt')JwtAuthGuard有一个名为 Strategy 的类JwtStrategy。在这堂课中,我有一个validate方法。在基于 HTTP 的请求中,我在此方法中返回有效负载。然后 nestjs 将有效负载附加到req. 这是我的策略课:

我想访问方法 中的上下文validate,以便将有效负载附加到 WebSocket 的主体(或我可以访问有效负载的任何东西)。任何的想法?

0 投票
2 回答
637 浏览

graphql - NestJS/GraphQL/Passport - 从警卫那里得到未经授权的错误

我正在尝试按照本教程进行操作,并且正在努力将实现转换为 GraphQL。

本地策略.ts

local.guard.ts

身份验证.type.ts

身份验证.resolver.ts

突变

即使上述凭据是正确的,我也会收到未经授权的错误。

0 投票
0 回答
29 浏览

nestjs - 基于角色的授权在nestjs中没有按预期工作

我遵循了 NestJs 文档并添加了以下不工作的基于角色的身份验证防护。

我总是得到未定义的标题或 context.switchToHttp().getRequest() 未定义。

我正在使用带有nestjs的graphql。

我的解析器:

用户模块:

角色守卫:

认证模块:

收到此错误: 在此处输入图像描述

我在 app.module 中添加了 RolesGuard。

{ 提供:APP_GUARD,useClass:RolesGuard }