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

node.js - Typescript Express 请求打字

我在我的快速打字稿应用程序中输入我的请求时遇到了困难。我有这个控制器是安全的,passport-jwt所以当一个路由被认证时,我尝试从 访问用户数据,req.user并且假设有一个_id.

此行产生错误:

我该如何解决这个问题?

编辑:创建了一个扩展类型的自定义Request类型

将其应用于管理 API 调用的控制器

但是当我将它调用到我的快速路由器时。它显示一个错误。

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

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

0 投票
1 回答
2240 浏览

passport.js - PassportJS、NestJS:AuthGuard('jwt') 的 canActivate 方法

有人知道我在哪里可以看到 AuthGuard('jwt') 中的 canActivate 方法的完整代码吗?我意识到 canActivate 方法通过使用 console.log() 调用 JwtStrategy validate 方法,如下所示:

如果我使用原始的 canActivate 方法,则会调用 console.log。我认为 JwtStrategy 是一个中间件,所以只要有请求就会调用 validate 方法。但是,当我尝试覆盖 canActivate 方法以添加授权时,不会调用 JwtStrategy validate 方法中的 console.log:

然后我试图找到 AuthGuard('jwt') 的原始代码以了解其逻辑,但我无法做到。任何帮助将不胜感激,谢谢!

0 投票
0 回答
130 浏览

javascript - 用护照注册后,我无法设置 Authorization Bearer 标头

我试图将不记名令牌保存在 req.header["Authorization"]

我将令牌添加到 req.header [“Authorization”],但是当 res 重定向到秘密获取路由时,它显示“未授权”,但是当我尝试使用邮递员通过授权承载标头手动发送令牌时,它可以工作

我使用了 passport-jwt 策略和提取方法。对于提取,我使用了 fromAuthHeaderAsBearerToken()。我的问题是我们是否可以在 req obj 上附加新的标题?

0 投票
6 回答
3530 浏览

nestjs - 使用 nestJS 注销 JWT

我正在使用 JWT passaport 登录模块:

这部分正在运行。我的问题是:如何注销?我阅读了有关创建黑名单并将令牌添加到其中的信息,但是如何获取用户的访问令牌?

0 投票
1 回答
36 浏览

express - 在使用 passport-jwt 进行身份验证后对模型属性未定义的 Express.js 控制器进行续集

我正在使用passport-jwt来验证对express.js中给定路由的访问,然后将 Sequelize 模型返回给最终控制器。代码如下所示:

授权策略:

带有 auth 中间件的路由

控制器功能

如果我console.log(authenticatedUser)getPatientPsy()控制器中成功打印 Sequelize 模型及其dataValues等等,但是当我尝试访问任何属性时,无论是userType还是任何其他属性,它都会始终返回undefined

在passport-jwt身份验证中,一旦找到与提取的JWT令牌匹配的用户,afaik就会同步返回并使其在req.user对象中可用,我可以使用console.log打印它,但为什么不能我访问模型的属性?

我试图让getPatientPsy()控制器成为同步功能,但它也不起作用。

谢谢你。

0 投票
2 回答
381 浏览

node.js - 提取 JWT 时请求未定义

我已按照本指南尝试使 JWT 身份验证正常工作。

我唯一的区别是我将 JWT 令牌保留在 HttpOnly cookie 中,这意味着需要自定义提取器。

我找到了一个如何从 cookie 中提取 Token的示例。所以,唯一的区别是:

不幸的requndefined,没有明显的原因。

这就是我的auth.module.ts的样子:

我还创建了一个策略文件jwt.stragegy.ts

auth.guard.ts

可能是 passport.js 库方面的错误吗?就像,@nestjs/passport 无法映射参数或其他东西......

0 投票
1 回答
282 浏览

authentication - Passport 策略如何知道在 nestJS 中选择正确的 jwt 策略?

我正在关注此https://www.codemag.com/Article/2001081/Nest.js-Step-by-Step-Part-3-Users-and-Authentication在nestJS中使用护照实现jwt,一切都按预期工作,但是我对这种方法有一个澄清,如果我们使用 UseGuards(@AuthGurads()),应用程序知道使用 passportstrategy 来验证令牌并调用 validate 方法以进一步进行,但是为什么护照策略知道正确的 jwt 策略选择用于调用 validate 方法的类,没有明确提到我们要求护照策略使用 jwtStrategy 类并且它不是默认导出,但是在验证令牌后,passportstrategy 如何调用正确的 JwtStrategy 类进行验证方法?

0 投票
1 回答
260 浏览

node.js - NestJS JWT 策略认证。有效载荷对所有用户使用相同的安全密钥进行签名

作为 NestJS 使用 Passport JWT 进行身份验证的文档,流程如下:

  1. 客户端使用用户名/密码登录
  2. 如果用户名/密码有效,JWT 签署有效负载(使用预配置的安全密钥)以创建访问令牌并将此访问令牌返回给客户端
  3. 客户端使用访问令牌请求受保护的资源

因此,如果签署有效负载的安全密钥被黑客入侵,则可以为所有用户生成访问令牌,而无需使用密码。

我的上述理解是否正确?什么是更安全的建议?谢谢你。

0 投票
0 回答
52 浏览

node.js - 错误('需要数据和盐参数')

嗨所以我已经用邮递员测试了我的注册部分,一切都很好,我的密码被散列但是当我尝试前端(我使用 vuejs)时,它向我显示错误“需要数据和盐参数”。我不知道是什么错了我哪里错了?这是我的代码。

我的模型.js

你能帮我找出问题所在吗?它是 bcrypt 的,它与邮递员完美配合,但是一旦我尝试我的应用程序,这个错误就会显示

0 投票
0 回答
31 浏览

node.js - 我正在使用 node express 和 passport-jwt 创建一个简单的路由来使用 json web token 进行身份验证

我使用 json web 令牌获得了电子邮件和密码的令牌,但是当我输入这个 http://localhost:3001/users/profile url 作为发布请求并在邮递员工具中将令牌作为 Authorizaton 标头传递时,我总是未经授权。

我的 app.js 文件是,

我的 passport-jwt.js 文件是,

我的 routes.js 文件是,

我的 model.js 文件是,

我的 database.js 文件是,

**请帮我解决这个问题,