问题标签 [express-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 投票
3 回答
224 浏览

angularjs - 如何使用令牌正确调用受保护的 API 路由

我的 API 应用程序中有这条路线:

在邮递员中,我像这样进行 api 调用:

URL + users?token= token

但这会返回:

格式为授权:Bearer [token]

如何在邮递员中正确地使用令牌进行 api 调用?

0 投票
2 回答
5411 浏览

node.js - Passport token auth *without* 数据​​库会话

我正在寻找一种在不使用数据库中的会话集合/表的情况下对 Passport.js 使用 Twitter 策略的方法。这样做的原因是我们将所有数据保存在会话集合中,这些数据可能会变得非常大,并且每当用户发出请求时我们都会保存数据库往返,因为我们不必每次都去数据库来获取会话数据。

无论如何,我们应该能够使用令牌(JSON Web 令牌)来验证用户,正如这篇精彩的文章所描述的那样:

https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens

但我很困惑为什么没有一种简单的方法可以用 Passport 做到这一点?(这篇文章在没有 Passport 的情况下做所有事情 - 但肯定 Passport 已经涵盖了这一点?)。

也许我想太多了,这样做的方法只是省略我在 Express 中使用数据库会话的调用,然后 Passport 已经足够聪明来处理 JWT?不知怎的,我对此表示怀疑。

例如,在我的 Express 服务器中仅注释掉这段代码肯定是不够的:

那么,使用 Passport 就够了吗?

为什么有人会使用存储在数据库中的会话而不是使用基于 JWT 的身份验证?

0 投票
1 回答
153 浏览

javascript - 如何正确使用 JWT 和节点

我刚开始使用节点应用程序。对于身份验证,我使用 JWT。所以我有一个问题,如何在 UI 和后端正确使用它。

例如,我获得令牌,将其保存在会话存储中,然后我为当前用户发送一些集合的请求。问题是 - 它是否需要在请求中也存储用户名,或者我可以理解什么用户通过令牌发送请求?

0 投票
2 回答
8212 浏览

authentication - express-jwt 与 jsonwebtoken

我觉得这将是一个快速的答案,但我似乎无法在网上找到任何明确的答案 - jsonwebtoken npm 包和 express-jwt npm 包有什么区别?我认为express-jwt 是在 jsonwebtoken 之上编写的,它只是验证传入的令牌并设置req.user为 JWT 上的用户有效负载。

那是对的吗?对不起,如果这是一个完全的菜鸟问题......我刚开始学习身份验证和节点/表达,所以这对我来说都很新。

0 投票
1 回答
4485 浏览

android - 在 Volley 请求中添加 JWT 令牌

我在后端使用 Node.js,需要在 GET 请求的标头中发送一些参数(参数)和 jwt 令牌(用于授权)。我在节点服务器上使用 express-jwt 模块。该请求需要在那里使用 jwt 令牌进行授权。简单地将令牌作为参数发送在那里不起作用。

`

0 投票
1 回答
4144 浏览

node.js - JWT 和 express-JWT 有问题

我正在测试 express-jwt 和 jsonwebtokens。我以前从未使用过它,希望得到一些帮助!

我已经完成了基本设置,我只有一条受保护的路线。

不幸的是,我无法访问“/api”,因为它给了我这个错误

如果我使用 POSTman 并发出带有以下标头的 GET 请求

一切正常,我可以访问“/api”中的内容。

但我的问题出在我的快速应用程序中,特别是当我尝试将用户重定向到新的受保护路由时。

用户登录,我创建一个新的 jwt 令牌并将用户重定向到 '/api'

在这条路线中,我设置标题并呈现页面。

不幸的是,我收到以下错误

我的目标是能够将用户重定向到受保护的路线。

据我了解,由于 /api 是受保护的路由, express-jwt 应该设置我的授权标头。即使我尝试使用中间件手动设置标题,我仍然会收到错误消息。

任何帮助是极大的赞赏!

谢谢!

0 投票
1 回答
1650 浏览

node.js - json web token - 过期时间不清楚

我在节点 js 中使用 jsonwebtoken 包。我正在生成一个像这样的令牌:

生成了令牌,但是当我查看 Chrome 的 cookie 控制台时,“Expires / Max-Age”列的值是“Session”,而不是像我预期的那样从现在开始 24 小时。我也尝试将 expiresIn 设置为 '1d',但结果是一样的。

谢谢。

0 投票
1 回答
3534 浏览

node.js - express-jwt 将用户对象设置为 req.user._doc 而不仅仅是 req.user?

我过去曾使用 npm 包 express-jwt 来轻松进行 JWT 签名、解码等。通常(根据文档)它会拦截请求,使用用户对象有效负载解码令牌并设置req.user为该有效负载。但是,这一次它显示req.user如下:

而不仅仅是:

我试图弄清楚为什么这一次我需要指定req.user._doc以获取有关用户的特定信息。我已经比较了每个来源的代码,它实际上与过去的项目相同,我只是并排测试了它们 - 一个项目将 req.user 设置为用户对象,另一个将 req.user 设置为上面显示的对象,其中用户对象只能在_doc属性中找到。

我检查了两个项目中 mongoose.findOne()方法实际返回的内容,它上面两个项目中显示的较大对象,但 express-jwt 似乎在一个项目中自动清除了多余的东西,而在另一个项目中没有。

我还注意到,带有我不想要的所有附加信息的 JWT 比项目中带有正确req.user对象的 JWT 长得多。所以也许这意味着当 JWT 使用有效负载签名时发生了一些奇怪的事情......

这是需要的相关代码req.user._doc

服务器.js

authRoutes.js

countryRoutes.js(问题出现的地方)

至此,express-jwt 已经解码了令牌并(据说)将令牌的有效负载(应该只是用户的信息,而不是附加$__的等内容)设置为req.user,但我必须req.user._doc按照下面的代码让它工作。

如果它有帮助,或者可能是问题的一部分,这里是用户模型和国家模型:

用户.js

国家.js

0 投票
1 回答
7973 浏览

node.js - 如何通过 Header 传递 JWT 并通过 Sails.js 中的服务器端视图检索数据

后端:Sails.js

res.json(data);我已经为 REST API 实现了 JSON Web Token,只有当它通过 Authorization Header 接收到正确的 JWT时,从前端到各种控制器的操作的所有 AJAX 请求才会返回数据。它按预期工作。

现在,我已经使用 EJS 创建了一个视图<%= name =>,现在控制器具有详细信息res.view('/home', {name: "Bill"} );并配置路由以指向相应的控制器。

如何通过从具有属性的服务器端视图中使用已发布的 JWT(存储在 localStorage 中)进行身份验证,从控制器中检索“名称”<%= name =>

谢谢。

代码:

意见/index.ejs

api/控制器/UsersController.js

api/policies/tokenAuth.js

api/services/sailsTokenAuth.js

配置/routes.js

解决方案:

要将 JWT 用作从客户端浏览器到服务器的身份验证因素,可以使用 localStorage 或会话 cookie。由于在服务器中更容易实现,我终于将其范围缩小到使用 cookie。

验证用户身份后,将 JWT 存储在客户端浏览器中,

然后可以使用req.cookies.jwttoken服务(jwt.verify)对其进行检索和验证,以通过res.json或访问请求的信息res.view

0 投票
1 回答
645 浏览

node.js - Auth0 与 nodejs 用于运行用户特定的查询

我正在使用 auth0 对用户进行身份验证,因此我不必管理用户模式,因为 auth0 已经保留了该数据库,如果我想在登录时显示与单个用户关联的数据,任何人都可以指导我需要采取的步骤。我使用 React 作为前端,Nodejs 作为我的 api 的后端。我是否需要在我的节点应用程序中创建用户模型并将他们的 id 与他们的个人记录相关联,以便我可以查询每个用户 id 的数据或者是他们的任何其他方式。

在 React 方面,我只是在发出 api get/post 请求时将身份验证 id_token 作为标头。

在节点端,基本的 Auth0 文档描述了我如何验证我的 api :

但这基本上只是对其进行身份验证,我如何从 api 检索用户特定数据。此外,如何向前迈出一步并启用多租户,是他们的任何相关文档,这些文档提供了轻松完成基本过程的指南。