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

sails.js - 如何从sails action2调用Passport Authenticate函数

我正在使用sails js v1.0。我不知道如何调用护照的身份验证功能。由于 req、res 和 next 在sails 新控制器类型(action2)中不存在。

我想在sails js v1 应用程序中使用基于护照JWT 的身份验证。

我的 config/passport.js 看起来像

0 投票
1 回答
2062 浏览

typescript - NestJS JwtStrategy 使用 configService 传递密钥

我有来自文档示例(https://docs.nestjs.com/techniques/authentication)的 JwtStrategy 类:

当我this在调用 super() 之前尝试访问时,出现错误。但我仍然想使用 configService 来获取密钥。

我知道我可以使用 env var 来做到这一点,但在我看来,服务方法是更清晰的解决方案。

我如何使用 configService 或者从中获取价值并传递给 super() 调用?谢谢。

0 投票
0 回答
305 浏览

node.js - 未经授权的 nodejs 的 Passport-JWT 身份验证

我是nodejs的新手。我需要使用 nodejs 创建和身份验证。在这里我找到了几个答案,但他们也使用了旧版本。我在这里使用这些版本 在此处输入图像描述

我使用此代码在我的节点应用程序中创建了 passport.js 文件。

我使用这个路由方法来创建一个带有身份验证的路由。

我使用邮递员创建令牌并检查身份验证。 在此处输入图像描述

我无法理解为什么它错了。findUserById 方法如下

我的代码有什么问题?为什么它每次都给

未经授权

在我的邮递员申请中。

0 投票
1 回答
1368 浏览

node.js - 使用passport-jwt登录后未授权


我使用passport-jwt登录。它找到用户并且用户可以登录,但是登录后,我想重定向到用户仪表板没有任何反应,当它重定向到 localhost:8080/my/ 时,它在浏览器中显示未经授权,你能找出问题所在吗:

ps:当我passport.authenticate('jwt', {session: false})从 my.js 中删除时,它可以工作并重定向到 /my/。所以我认为问题在于auth.js中的这部分代码或JWTStrategy。我不知道如何解决它!

这是我的代码:(对不起,代码太多)

auth.js:

验证.js:

用户.js

我的.js

0 投票
1 回答
419 浏览

javascript - 如何获得快速路线通过护照进行认证

我最近将我在 es6 中制作的样板更改为稍旧的 es5 版本。我不得不重新创建导出,需要而不是使用导入,并且路由现在可以正常工作。

我有这样的结构:

在我的身份验证路线中,我有登录和注册功能并生成令牌:

在我的 protected.js 中,我有以下内容:

在我的passport.js中

问题是当我尝试使用登录时获得的令牌访问:127.0.0.1:8080/api/protected/test 时,它给了我一个:Unauthorized

此外,console.log内部:

  • 序列化用户
  • 反序列化用户
  • jwt策略

从未显示,因此我认为没有使用护照中间件。

我怎样才能获得/protected使用护照中间件的路线?

编辑:我尝试打印护照对象,我可以看到我的jwt策略确实已定义。所以我不明白为什么它不想通过它。

有一个策略

0 投票
1 回答
1246 浏览

node.js - JWT Passport 不从中间件返回用户数据

第一次提问者,长期搜索者。我在让用户对象从 Passport JWT 验证调用返回时遇到问题,我希望有人能帮助找出问题所在。

这是我的护照 jwt 配置:

这是我调用 JWT Passport 身份验证的路线:

这是我的server.js文件,我在其中实例化路线。

也许我正在错误地使用 Passport JWT,或者错误地调用它,但是每次我测试它时,我都可以看到我正在创建的令牌,我可以看到在数据库中找到了用户,但是当return done(null, user)叫做。

每次我使用 Passport 的本地策略注册和登录用户并生成 JWT 令牌时都没有问题,但由于某种原因,我无法从 Passport JWT 取回这个用户对象。

感谢您提供的任何帮助,我一直在搜索 Internet、Github、Stack Overflow 和许多关于这个问题的博客,但我还没有找到解决我的障碍的方法。

跟进:我在前端使用 React 来调用服务器。生成的 JWT 令牌在登录调用时使用键“JWT”设置在本地存储中,然后提取它以供下一次调用以查找用户数据,如下所示:

所以也许,我没有正确地在 Axios 中传递我的 JWT 身份验证标头?

0 投票
1 回答
699 浏览

mongodb - 用于超级账本作曲家 API 的 Passport JWt 身份验证

回调访问令牌我正在寻找一种解决方案来为超级账本作曲家 REST API 实施护照 jwt 身份验证策略。我已按照此链接设置护照身份验证https://www.codementor.io/gangachris125/passport-jwt-authentication-for-hyperledger-composer-rest-server-jqfgkoljn

生成超级账本作曲家 API,创建作曲家休息服务器 docker 容器,API 受到保护,除了访问令牌生成、如何检索该令牌之外,一切似乎都正常工作。

我还用护照 jwt 创建了另一个 nodejs 应用程序,mongodb 添加了几个用户。我能够从该应用程序成功生成令牌并使用该令牌保护任何快速路由。

但我的挣扎点是如何为作曲家休息服务器 API 生成令牌

正如许多文章中解释的那样,我创建了自定义 jwt ,环境变量如下

自定义 jwt

环境变量

作曲家休息服务器登录启动

现在我应该从哪里生成令牌,如何检索该令牌,以便我可以捕获并将其传递到超级账本作曲家业务 API 的标头中。

请帮忙详细说明。

0 投票
1 回答
548 浏览

node.js - Passport JWT:req.user 始终未授权

我已经搜索了关于堆栈溢出的类似问题,但其中任何一个都不适合我,所以我再次问这个问题。

我正在使用passport-jwt来使用express.

我想登录用户 id ,将其存储在其他模型中。但每次我得到 401 Unauthorized

这里是helpers/passport.js

这是server.js

路线/api/auth.js

控制器/auth/user.js

当我尝试使用邮递员但不工作时。

在此处输入图像描述

我也尝试过:ExtractJwt.fromAuthHeaderWithScheme('jwt') 因为它在某些问题中被赞成,但它不起作用。

我在用

“护照”:“^0.4.0”,“passport-jwt”:“^4.0.0”,
“jsonwebtoken”:“^8.3.0”

请帮我解决这个问题。

0 投票
1 回答
194 浏览

hyperledger-composer - Hyperledger Composer 中的 JWT 身份验证失败

我一直在关注Caroline 的博客来设置多用户作曲家休息服务器。所以,我有两台服务器,即。管理服务器和用户服务器。

如教程中所述,我:

  1. 在没有身份验证和单用户模式的情况下启动管理服务器。我用管理员卡启动了这个服务器。
  2. 在多用户模式下使用护照 JWT 身份验证启动用户服务器。我也用管理员卡启动了这个服务器。
  3. 创建了一个用户参与者并从管理服务器为用户生成了一张卡片。
  4. 在这一步中,我尝试与用户服务器(#2)交换 JWT 令牌,并且我也能够获取令牌。
  5. 使用 JWT 令牌 Ping 用户服务器。这会导致“错误:需要授权”。

我已经关注了Chris Ganga 的博客来实现 JWT。我的 COMPOSER_PROVIDERS 是:

我第一次从 Java 服务交换 JWT 令牌。为了创建不记名令牌,我编写了以下代码:

有了这个,我就能得到令牌。接下来,我使用此令牌将卡导入用户服务器上的钱包:

但是,这会导致:

请求 POST /api/Wallet/import 的未处理错误:错误:需要授权

发现1 一般情况下,当我们第一次使用auth bearer交换JWT时,会在mongo中创建一个名为“test”的db。该数据库包含三个集合:accessToken、user 和 userIdentity。但是,就我而言,当我交换令牌时,mongo 中没有创建任何数据库。关于如何调试它的任何建议?

注意:在我决定修剪并从头开始重新启动网络之前,整个设置工作得非常好。

0 投票
1 回答
136 浏览

node.js - Express.js:用户只访问他们创建的数据

我在 Express.js 和 MongoDB 上苦苦挣扎。我已经配置了passport login和passport-jwt,它工作得很好,但是现在我有一个问题。例如,我有两个用户和一个表,我希望当第一个用户登录应用程序时,他们可以访问他们创建的数据。什么是最好的解决方案?每个用户创建一个表?帮帮我,我感谢你的帮助!