问题标签 [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 回答
1773 浏览

nestjs - 如何使用nest js在typeorm中生成迁移文件

我是新框架 Nest JS 并创建了示例 Restful API 但无法迁移实体文件。我尝试了很多方法它不起作用。第一次运行迁移命令以生成迁移文件,它工作正常。但是第二次创建一个新实体然后运行迁移命令它显示没有更改消息如何解决这个问题。

数据库配置 .ts 文件

迁移命令

创建和生成迁移命令

运行迁移文件

0 投票
1 回答
204 浏览

authorization - 我们如何从 NestJS 中的服务类访问装饰器

我是 NestJS 的新手,正在尝试做身份验证系统。我能够做到。所以这就是我为获得身份验证所做的工作。

在我的控制器中,我有

在这里,我传递了一个AuthUser装饰器,我想避免传入控制器。在authService.getUser方法中我有这样的东西

我的装饰器看起来像这样

我不喜欢代码。如果我需要从服务类或任何地方知道用户 ID,我需要传递令牌并获取我需要使用的令牌@AuthUser() token: string)

所以我想做这样的事情

this.authService.getUser(),在这里我不想传递令牌或任何东西,应该能够getUser从任何地方访问此方法。由于它是一个服务类,我可以注入和使用它,但我不会拥有令牌。

我尝试在服务类中注入装饰器,但这不起作用。

我更喜欢的一个最佳解决方案是在装饰器中使用 JWT 的东西,所以我不需要服务类的方法:)

我正在向您寻求更好的解决方案:)

谢谢你。

0 投票
3 回答
3759 浏览

graphql - 在 Nestjs 中使用 graphql 进行授权

我已经开始学习 Nestjs、express 和 graphql。我在尝试授权使用 jwt 令牌进行身份验证的用户访问时遇到问题。我按照Nestjs 网站上的身份验证教程进行操作。我能够获取当前用户,但是当我尝试实现基本角色基础访问控制时,我无法在 canActivate 方法中访问当前用户。我认为这是因为 Roles Guard 在 Graphql Guard 之前执行。

我将在这里发布代码

gql-auth.guard.ts

角色.guard.ts

jwt.strategy.ts

解析器

有没有人成功实施过这个?

0 投票
2 回答
591 浏览

nestjs - 如何在 Nest JS 框架(打字稿)中实现 Clinic.js

我在 Node JS 中实现了 Clinic.js。但我不知道如何在 Nest JS 框架中实现 Clinic.js。我探索了如何将 Clinic.js 实现到 Nest JS。但我无法得到任何答案,请您告诉我。

0 投票
0 回答
49 浏览

nestjs - 如何在 Nest JS 中实现 Retrace 分析工具

我尝试在 Nest JS 中实现 APM(Retrace) 分析工具。在 Nest JS 中,我无法获得任何用于实现分析的文档。但是我在 Node JS 中看到了实现 Profiling 工具的方式与在 Nest JS 中的执行方式相同,任何人都可以告诉我

0 投票
0 回答
50 浏览

nestjs - NestJS 更新后 AuthGuard 损坏

我有一个使用 jwt 实现身份验证的 NestJS(版本 6)项目。以下配置运行良好:




但是,由于我更新了 nestJs 核心和通用模块,我无法提取身份验证。我的@CurrentUser装饰器在请求中找不到用户对象。巢模块已更新为以下内容:

现在我的@UseGuards装饰器抛出了这个自定义错误:

看来 AuthGuard 在版本 7 中的工作方式略有不同。还有其他人遇到过这个问题并且能够帮助我吗?

0 投票
2 回答
1188 浏览

jwt - 如何在 Nest.JS 中使用多个 Secret 实现多个 JWT 策略

我喜欢实施多个命名的 passport-JWT 策略,每个策略都有自己的secret. 有什么办法可以实现吗?据我从文档中了解到,在模块初始化期间只能注册一个秘密:

0 投票
1 回答
3220 浏览

node.js - 使用 JWT 策略的 NestJs 身份验证 - 添加“ignoreNotBefore”的验证选项

我在 NestJs 中使用 AuthGuard 来验证请求 jwt 令牌。由于我的服务只是验证令牌而不是创建它,它不能使用“nbf”验证以避免创建令牌的服务器时间晚于我的服务器的情况。

当使用 jsonwebtoken 库处理纯 node.js 时,很容易添加选项来关闭此验证,方法是添加:

这也有效。但是,我怎样才能使用嵌套呢?

这是我的后卫:

在 JWT 策略中,我尝试在调用 PassportStrategy 的“super”时添加 ignoreNotBefore 选项,但这不起作用:

这样做的正确方法是什么?

谢谢。

0 投票
1 回答
80 浏览

nestjs - Nestjs中的createParamDecorator VS CanActivate进行授权

我正在尝试根据用户的权限授权用户。使用 createParamDecorator 和 CanActivate 方法在功能上有什么区别吗?

0 投票
0 回答
44 浏览

nestjs - 无法在 NestJS 中加载特定于环境的配置

我在我的根目录中创建了三个 env 文件:.env、.env.test、.env.prod。

.env 文件有

我的 .env.test 有

我的 app.moudle.ts 看起来像

配置.ts:

我的脚本是:

控制器代码:

当我在任何控制器中注入 conifgService 并尝试记录 jwt 密钥时,它总是从.env文件中获取密钥。即使我使用脚本“start:test”运行应用程序

无论脚本/环境如何,它总是从 .env 文件中获取值 为所有脚本“THIS_IS_A_SECRET_KEY_DEV_ENVIRONMENT”记录此值