问题标签 [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.
angularjs - 如何使用令牌正确调用受保护的 API 路由
我的 API 应用程序中有这条路线:
在邮递员中,我像这样进行 api 调用:
URL + users?token= token
但这会返回:
格式为授权:Bearer [token]
如何在邮递员中正确地使用令牌进行 api 调用?
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 的身份验证?
javascript - 如何正确使用 JWT 和节点
我刚开始使用节点应用程序。对于身份验证,我使用 JWT。所以我有一个问题,如何在 UI 和后端正确使用它。
例如,我获得令牌,将其保存在会话存储中,然后我为当前用户发送一些集合的请求。问题是 - 它是否需要在请求中也存储用户名,或者我可以理解什么用户通过令牌发送请求?
authentication - express-jwt 与 jsonwebtoken
我觉得这将是一个快速的答案,但我似乎无法在网上找到任何明确的答案 - jsonwebtoken npm 包和 express-jwt npm 包有什么区别?我认为express-jwt 是在 jsonwebtoken 之上编写的,它只是验证传入的令牌并设置req.user
为 JWT 上的用户有效负载。
那是对的吗?对不起,如果这是一个完全的菜鸟问题......我刚开始学习身份验证和节点/表达,所以这对我来说都很新。
android - 在 Volley 请求中添加 JWT 令牌
我在后端使用 Node.js,需要在 GET 请求的标头中发送一些参数(参数)和 jwt 令牌(用于授权)。我在节点服务器上使用 express-jwt 模块。该请求需要在那里使用 jwt 令牌进行授权。简单地将令牌作为参数发送在那里不起作用。
`
node.js - JWT 和 express-JWT 有问题
我正在测试 express-jwt 和 jsonwebtokens。我以前从未使用过它,希望得到一些帮助!
我已经完成了基本设置,我只有一条受保护的路线。
不幸的是,我无法访问“/api”,因为它给了我这个错误
如果我使用 POSTman 并发出带有以下标头的 GET 请求
一切正常,我可以访问“/api”中的内容。
但我的问题出在我的快速应用程序中,特别是当我尝试将用户重定向到新的受保护路由时。
用户登录,我创建一个新的 jwt 令牌并将用户重定向到 '/api'
在这条路线中,我设置标题并呈现页面。
不幸的是,我收到以下错误
我的目标是能够将用户重定向到受保护的路线。
据我了解,由于 /api 是受保护的路由, express-jwt 应该设置我的授权标头。即使我尝试使用中间件手动设置标题,我仍然会收到错误消息。
任何帮助是极大的赞赏!
谢谢!
node.js - json web token - 过期时间不清楚
我在节点 js 中使用 jsonwebtoken 包。我正在生成一个像这样的令牌:
生成了令牌,但是当我查看 Chrome 的 cookie 控制台时,“Expires / Max-Age”列的值是“Session”,而不是像我预期的那样从现在开始 24 小时。我也尝试将 expiresIn 设置为 '1d',但结果是一样的。
谢谢。
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
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
node.js - Auth0 与 nodejs 用于运行用户特定的查询
我正在使用 auth0 对用户进行身份验证,因此我不必管理用户模式,因为 auth0 已经保留了该数据库,如果我想在登录时显示与单个用户关联的数据,任何人都可以指导我需要采取的步骤。我使用 React 作为前端,Nodejs 作为我的 api 的后端。我是否需要在我的节点应用程序中创建用户模型并将他们的 id 与他们的个人记录相关联,以便我可以查询每个用户 id 的数据或者是他们的任何其他方式。
在 React 方面,我只是在发出 api get/post 请求时将身份验证 id_token 作为标头。
在节点端,基本的 Auth0 文档描述了我如何验证我的 api :
但这基本上只是对其进行身份验证,我如何从 api 检索用户特定数据。此外,如何向前迈出一步并启用多租户,是他们的任何相关文档,这些文档提供了轻松完成基本过程的指南。