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

node.js - REST API 没有根据标头中的 Passport JWT 令牌更改用户?

所以我有一个用 Node.JS、MongoDB 和 Express 编写的 REST API。我正在使用 passport 和 passport-jwt 来使用 JSON Web 令牌进行身份验证,但是当我为不同的用户帐户使用不同的令牌时,请求每次都保存同一个用户。

这是我在 routes.js 中的身份验证端点:

因此,如果用户凭据在数据库中匹配,它会创建一个新令牌并返回它。然后我将该令牌放入此端点的标头中:

我可以每次都验证一个新用户并获得不同的令牌,但是 /users 端点总是返回同一个用户。其他一切都在 API 中工作,在注册新用户时数据库正在更新,并且正在返回其他内容,但即使使用不同的令牌,相同的用户也会从护照中返回。我知道我在 Postman 中以正确的方式放置了标题,其中包含 Authorization 的键和前面带有 JWT 的令牌的值,但我不明白为什么会这样。

如果重要的话,这是我的 passport.js:

有任何想法吗?

0 投票
2 回答
92 浏览

javascript - JsonWebToken 用户身份验证问题

我有一个用于用户身份验证的应用程序,我遇到了这个问题,我有登录的用户并将 JWT (JsonWebToken) 存储在 cookie 中。我在验证用户后存储了 cookie。接下来,我作为管理员,在他/她仍然登录时从数据库中删除该用户。由于用户仍然登录,用户在浏览器中具有有效的 JWT,所以它仍然认为它存在,因为我的方式验证用户是否通过 webtoken 登录。我一直在考虑如何解决这个问题,但我还没有想出任何办法。

我还在GitHub 上发布了这个问题。

0 投票
2 回答
6585 浏览

node.js - 我如何在 JWT 中使用通配符,除非?

我正在使用 express-jwt 来保护我的节点应用程序,并且想知道如何在 unless 参数中使用通配符。我的工作代码如下,我真正想做的是开放对路径以“/login”开头的任何内容的访问,这样我就不必列出每一个资源。当我将“/login*”添加到未受保护的数组时,它最终会以 401/unauthorized 阻塞 /login。

作品:

不起作用:

0 投票
2 回答
8387 浏览

node.js - Jsonwebtoken 验证总是只返回 {iat: xxx }

根据文档,https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callbackjwt.verify将返回解码有效载荷,我运行简单的脚本:

但它只输出如下:{ iat: 1470725598 }

我希望输出应该像{email: myemail@domain.com,}

有什么我想念的吗?

0 投票
1 回答
1023 浏览

angular - ExpressJS / Angular 2 JWT 令牌

我有一个在前端使用 ng2 (rc4) 运行的 ExpressJS API。我目前正在阅读如何使用 JWT 保护我的 API 上的某些端点。

目前,我可以从前端发送登录请求,将其拾取、检查,如果有效,则在响应中传回 JWT。然后我将其添加到本地存储。

然后,对于每个请求,我都会在标头中传递令牌。如果我在响应中收到 403,我计划将用户重定向到登录页面。

我目前的问题是,当我将请求传递给 API 时,我收到 403 响应。

我已经提取了我认为与以下相关的代码:

Express API - auth.js - 当一个 http 请求被发送到一个受保护的端点时被调用

ng2 - home.component.ts - onTestGet() 由 home 上的 ngSubmit 触发

}

ng2 - content.service.ts - 这由 onTestGet() 调用

我可以从开发人员工具中看到,在正确存储登录令牌后,如果我通过 POSTMAN 发送的令牌将被接受且有效。

登录后本地存储内容

任何关于我哪里出错的建议将不胜感激。

编辑:好的,如果我更新以下内容:

现在是这样

它有效,但是我不确定这是否是最佳做法?

0 投票
1 回答
66 浏览

node.js - REST API 社交登录 [express.js]

我不确定做什么是明智的。

我是否应该检查 facebook 访问令牌在中间件内部是否有效,或者可能是更好的解决方案来制作检查 facebook 访问令牌是否有效然后返回 JWT 访问令牌以允许用户访问的路由?

0 投票
1 回答
5956 浏览

go - 如何检查JWT令牌剩余有效时间golang

我正在使用设置 JWT 令牌声明的到期

其中 settings.Get().JWTExpiration 为我提供了我在应用程序设置文件中所做的设置。

我编写了一个函数,理想情况下应该给我令牌有效的剩余时间。

我像这样调用这个函数:

其中 claim["exp"] 是我在解析 jwt 令牌后得到的声明。但这总是给我相同的输出。即3600。如何检查我的令牌的剩余有效性。我正在使用golang。

0 投票
1 回答
650 浏览

express - 为什么我的 Jwt 令牌没有被提取?

我是护照 JWT 的新手,并且有此代码从客户端发送发布请求:

并且此请求在标头中使用令牌很好地发送,如下所示:

在服务器端,它通过护照正确路由并命中以下代码:

问题是 extractJwt 函数只返回 iat 部分,而不是我需要检查数据库的子部分。我究竟做错了什么?

0 投票
1 回答
823 浏览

node.js - 使用 JWT 获取用户信息

我目前正在试验 JWT 和 MERN 堆栈。我设置了 JWT 来对用户进行身份验证。我将 JWT 设置在本地存储中。如何仅使用 JWT 向我的 MongoDB 发出 GET 查询请求?我只想使用纯粹的 JWT 令牌为该特定用户提取信息。我是否还必须将 User.id 存储在本地存储中并使用它来进行查询?

谢谢!

0 投票
1 回答
1058 浏览

node.js - `jsonwebtoken` - 在`Nodejs` api中`decode`不可读

在我的MEAN应用程序中,我正在验证用户名和密码。后来我试图让用户信息显示在网页中。但我没有得到可读的数据。

我不知道这里的问题以及我所做的错误。任何人帮助我。

我的响应 api 是:

req.decoded我得到的结果是:

在数据中,我没有得到用户名,而不是得到一些 num 值。

这是我设置decode用户登录时的方式:

更新

根据hpavlino的建议,我已经更新了我的代码,并且我在控制台中得到了这个,如果有人找到解决方案,请告诉我: