问题标签 [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 投票
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 投票
1 回答
2668 浏览

node.js - 如何在 Nest JS 框架中实现 e2e 测试

我是这个框架的新手。我也实现了 crud 操作、迁移、单元测试,但我知道如何在 Nest JS 框架中实现 e2e 测试。我试图运行 e2e 测试程序它抛出一个错误如何解决这个错误。我尝试了很多方法,但我无法获得解决方案 在此处输入图像描述它显示此错误没有找到“UserEntity”的存储库。看起来这个实体没有在当前的“默认”连接中注册?. 所以,我试图改变我的数据库配置

数据库配置

此问题出现在数据库配置中的实体列中。如果我更改实体目录,应用程序将无法运行。如何解决此问题

tsconfig.json

0 投票
0 回答
49 浏览

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

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

0 投票
1 回答
911 浏览

typescript - Nest 无法解析全局模块中服务的依赖关系

我有一个名为FirebaseModule导出 a的全局模块FirebaseService,我将此模块导入到app.module.ts,然后我尝试使用FirebaseService内部 aUsersService并且它因缺少依赖关系问题而失败。

有趣的是,如果我删除服务上的使用并仅在控制器上使用它,一切都会失败,但如果我想在服务提供者中使用它,它就会开始失败。

我的代码:

app.module.ts

firebase.module.ts

users.module.ts

users.controller.ts

users.service.ts

我收到以下错误:

0 投票
0 回答
50 浏览

nestjs - NestJS 更新后 AuthGuard 损坏

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




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

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

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

0 投票
1 回答
80 浏览

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

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

0 投票
1 回答
177 浏览

nestjs - 如何在nestJs中使用护照本地策略对多个实体进行身份验证?

我有两个不同的实体:公司和用户都必须使用电子邮件和密码进行身份验证。我设置了 2 个不同的类来扩展护照策略,如下所示:

和本地身份验证警卫类:

以及身份验证控制器中的此登录方法:

我在 CompanyAuthentication 模块中创建了相同的内容,但是当我尝试使用公司登录时,我收到了错误的凭据错误。你能帮忙吗?顺便说一句,我正在关注本教程:https ://wanago.io/2020/05/25/api-nestjs-authenticating-users-bcrypt-passport-jwt-cookies/

0 投票
1 回答
621 浏览

passport.js - 如何使用护照和nestjs将api密钥作为请求url上的查询字符串传递

我按照https://www.stewright.me/2021/03/add-header-api-key-to-nestjs-rest-api/制定了 api-key 策略

它有效,我在标题中传递 api-key 并授权它。

现在对于某些情况,我需要将 api-key 作为查询参数传递给 url 而不是 header。我无法弄清楚。

例如 mysite.com/api/book/5?api-key=myapikey

我目前的代码是

api-key-strategy.ts

api-key-auth-gurad.ts

应用程序控制器

0 投票
0 回答
190 浏览

node.js - Nestjs 身份验证在 docker 容器中不起作用

我使用 Angular 作为前端和 Nestjs 作为后端开发了一个全栈应用程序。该项目使用 NX 组织在一个单一存储库中。该项目在我的本地机器上运行良好,包括身份验证(来自 Nestjs 的 Passport 库)。

所以我决定对应用程序进行 docker 化,但是当应用程序在 docker 容器中运行时,来自 Nestjs 后端的受保护路由无法访问,尽管使用了从运行在码头集装箱。

我将项目从 bcrypt 迁移到 bcryptjs,因为在构建 docker 容器时出现错误。最让我困惑的是,在我的本地机器上一切正常,但在 docker 容器中,尽管使用了我从后端获得的 JWT 令牌,但受保护的路由仍无法访问。

Dockerfile

码头工人-compose.yml

如何解决身份验证问题?什么可能导致 docker 出现这种奇怪的行为?

Jwt策略:

为了保护我正在使用的路线:护照库的@UseGuards(AuthGuard()) 位置AuthGuard

授权模块:

0 投票
0 回答
137 浏览

authentication - 如何在 Nest Js 中从 Google 登录验证 access_token

我有 Angular 应用程序作为前端和 NestJs 应用程序作为后端。

我使用 Google Api 登录,我得到了 access_token、token_type、id_token、scope、expires_at 等的成功响应

我需要使用这些令牌来验证 NestJs api。

我怎样才能做到这一点?有谁能帮帮我吗?