问题标签 [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.
authentication - 将 NestJs Passport 配置提取到 npm 包中
我一直在用nestjs 开发一个微服务应用程序。我使用 Auth0 作为我的身份验证 * RBAC 提供程序,尽管这些细节与这个问题无关。
为了争论,假设我有 2 个服务,一个users
服务和一个accounts
服务。假设我的身份验证发生在users
服务中,但是这两个服务都需要利用如下的身份验证保护。
如果我在我正在使用的服务中完成所有护照配置,它就可以工作。这是完整的配置。
auth.module.ts
jwt.strategy.ts
app.module.ts
同样,这一切正常,如果在尝试访问端点时未登录,我会得到 401。但是,当我将auth.module.ts
andjwt.strategy.ts
拉出到 npm 模块中并以完全相同的方式包含它时......我得到一个 500 并出现以下错误。
这是我package.json
的私有 npm 模块...
...最后在这里我将它保存为依赖项,以供本地使用到我的users
服务中。
任何帮助将不胜感激,看来我只是缺少一些小东西。提前致谢。
nestjs - 为什么nestjs服务没有注入护照策略?
我正在尝试使用nestjs制作应用程序
到目前为止,依赖注入到控制器中运行良好。
但是当我将服务注入护照策略时,注入不起作用。
我想authService
注入googleStrategy
.
这是我的模块代码。
auth.modules.ts
google.strategy.ts
在这种情况下,AuthService
不注入。
当我使用装饰器AuthService
手动注入时,注入成功。@Inject
AuthService
为什么服务没有注入护照策略?
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:
知道发生了什么吗?谢谢。
nestjs - 如何使用 Passport 定义 Nestjs 动态模块以进行身份验证
我正在尝试创建一个库来在项目之间共享我的身份验证模块。我在策略(发行者和受众)中设置了 2 个参数,以使用正确的身份服务器配置我的项目以验证 jwt。我已经按照https://dev.to/nestjs/advanced-nestjs-how-to-build-completely-dynamic-nestjs-modules-1370来实现它,但是 registerAsync 方法没有按预期工作(说“未知尝试调用经过身份验证的 API 时,控制台中的身份验证策略 "jwt"")。但是 register 方法工作正常。有人能帮我吗?我和你分享代码
nestjs - Nest JS - 尝试在 RolesGuard 中获取用户上下文时返回未定义
我正在尝试在 Nest JS API 中添加角色保护。我为此使用了 Passport、Jwt 身份验证。在我的 RolesGuard 类中,我提出了请求并从中获取用户以检查用户角色是否有效。我附上了下面的代码。
角色.guard.ts
}
这里的问题是 context.switchToHttp().getRequest() 返回对象,这是未定义的。所以我无法从中获取用户详细信息。在对这个错误进行一些研究后,我发现控制器中装饰器的顺序可能是问题所在。然后我更改了顺序,但问题仍然出现。贝娄我也添加了该代码。
用户控制器.ts
-谢谢-
authentication - NestJS 的 Passport 本地策略“验证”方法从未被调用
我正在尝试实施 Passport 本地策略,但 validate 方法不起作用。当我执行@UseGuards(AuthGuard("local")) 时,它会自动抛出未经授权的异常,而无需通过我编写的验证方法。我不知道我做错了什么,因为文档也是如此。
这是我的 LocalStrategy 类:
我的 AuthModule 导入:
示例用法:
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 完全理解并且在网络中也没有太多帮助。
nestjs - Nestjs JwtStrategy 访问上下文
我的 WebSocket 中有一个UseGuard
。实际上,这个守卫是一个JwtAuthGuard
延伸的AuthGuard('jwt')
。JwtAuthGuard
有一个名为 Strategy 的类JwtStrategy
。在这堂课中,我有一个validate
方法。在基于 HTTP 的请求中,我在此方法中返回有效负载。然后 nestjs 将有效负载附加到req
. 这是我的策略课:
我想访问方法 中的上下文validate
,以便将有效负载附加到 WebSocket 的主体(或我可以访问有效负载的任何东西)。任何的想法?
graphql - NestJS/GraphQL/Passport - 从警卫那里得到未经授权的错误
我正在尝试按照本教程进行操作,并且正在努力将实现转换为 GraphQL。
本地策略.ts
local.guard.ts
身份验证.type.ts
身份验证.resolver.ts
突变
即使上述凭据是正确的,我也会收到未经授权的错误。