问题标签 [nestjs-jwt]

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 投票
1 回答
562 浏览

nestjs - Nestjs JwtStrategy 访问上下文

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

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

0 投票
0 回答
29 浏览

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

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

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

我正在使用带有nestjs的graphql。

我的解析器:

用户模块:

角色守卫:

认证模块:

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

我在 app.module 中添加了 RolesGuard。

{ 提供:APP_GUARD,useClass:RolesGuard }

0 投票
0 回答
23 浏览

nestjs - 从控制器中的 NestMiddleware 获取详细信息

我在 NestJS 中使用 Firebase 身份验证。客户端在请求标头中发送 authToken,在中间件中对 req 令牌进行解码。我想从我可以在中间件中执行的解码令牌中获取电子邮件和相应的 firebase uid。

所以我在中间件本身中有所需的信息,我怎样才能在我的不同控制器中获取这些信息,从那里到服务?

PS 一种方法是添加信息req并在req: @Request. 但是还有其他更好的方法吗,因为我不想使用 expressJS 方式来执行此操作,而是使用 NestJS 方式。

0 投票
1 回答
41 浏览

nestjs - 将信息从 NestJS 中间件传递到控制器/服务

我已经在 NestJS 中间件中应用了身份验证,并通过第三方 API 从用户令牌中解码了所有信息。

现在我已经在我的中间件中获得了信息,我如何将这些信息发送到控制器和服务?

0 投票
2 回答
463 浏览

node.js - 如何从令牌中获取用户 ID?

我正在编写一个简单的 get 端点,并从前端标头发送令牌信息。但在后端我需要使用 userId。我认为它在令牌上可用,但我怎样才能从令牌中获取 userId?

0 投票
1 回答
1831 浏览

javascript - @nestjs/swagger 没有设置授权标头

无法在使用的路线中授权,@nestjs/swagger@5.0.9因为我t know how to configure the 以正确的方式使用 Document`,并且在授权官方文档/stackoverflow/github 中找不到可行的答案。

我在 swagger 中偶然发现了 JWT 授权的问题。我正在使用"@nestjs/swagger": "^5.0.9",在从公共路由获取访问令牌后,我将其插入到配置有.addBearerAuth()方法的 swagger ui 字段“授权”中,该方法在此版本(5.0.9)中具有此签名

相对于它的低版本

我已经在 Postman 中测试了我的 API,并且很容易获得授权,我还创建了一个交叉器,它在路由调用之前打印标题,但不幸的是它只在我调用公共路由时打印它们:/

我只知道 Postman 正在设置一个 Bearer 令牌并且它会抛出路由,而 swagger 并没有发生类似的事情。

我已经尝试了很多这种配置的组合,但我还没有找到一个解决方案,结果我在我的路由方法中获得了授权,从 swagger 我无法达到它,因为swagger auth 不是在配置错误或我做错事的情况下设置授权标头。我想不通。

a 的配置addBearerAuth放在较低的位置:

我的控制器中的路线示例。与一个@ApiBearerAuth()装饰器相匹配,该装饰器大摇大摆地表示,未经授权就无法使用该方法。

0 投票
1 回答
79 浏览

node.js - 如何从 jwt 策略中获取有效载荷?

我有 jwt 策略:

这是我的控制器:

那么如何在控制器中获取 jwt 策略中返回的有效负载呢?

0 投票
1 回答
170 浏览

jwt - Nestjs,无法验证 jwt

我在前端发送请求,它返回 401 Unathorized,当我在控制器上 console.log(headers) 时,没有保护 x-access-token 存在,当我删除保护时一切正常,图像 url 被发送回前端。

/auth控制器上

服务:

存储库:

jwt-策略

认证模块:

0 投票
2 回答
713 浏览

nestjs - 如何修复 Nest JS 框架中的 CORS 错误

我在 main.ts 中添加了 cors 包。但它仍然抛出错误。我不明白为什么会抛出这个错误,请您解释一下如何正确处理 cors 问题。

Main.ts

错误

我参考了许多文档。所有文档都说在 main.ts 文件中添加enablecors()但它抛出错误

0 投票
1 回答
212 浏览

nestjs-jwt - Nestjs:JwtStrategy 的方法不起作用

我正在尝试在嵌套中使用 jwt 一切正常,但验证功能在 jwt.strategy.ts 中不起作用

这是我的 jwt.strategy.ts:

它打印:这是有效载荷 undefine

用户模块

当我在邮递员中请求时,我得到 satus:401 Unauthorized 并且在终端显示:payload undefined