如何将 jwt 令牌添加到 url?
Posted
技术标签:
【中文标题】如何将 jwt 令牌添加到 url?【英文标题】:how to add a jwt token to the url? 【发布时间】:2021-01-17 15:17:11 【问题描述】:我想允许用户重置他们的密码。为此,我首先检查他们的电子邮件是否存在于数据库中,如果存在,我会向他们发送一封电子邮件,其中包含指向重置密码页面的链接。为了确保链接安全,后者使用了一个有效期仅为 1500 万的 jwt 令牌。
但是,由于有“。”,所以无法访问该网址。在 jwt 中:
http://www.myapp.com/reset-password/eyJhbGciOInR5cC.ICJlywY2svp6eL98LHd.RpYylmPI
如果我删除点,则可以理解 url(顺便说一下,我使用 React 路由器)。如何解决这个问题?是否有另一种方法可以使用临时 url 实现此重置公式?
【问题讨论】:
.
不是无效的,也不需要使用 encodeURIComponent 等进行编码,您需要修复如何处理传入的路由参数,因为这就是问题所在。顺便说一句,当您可以制作一个小哈希并使用日期存储在数据库中时,jwt 似乎过多
刚刚尝试捕捉带点的字符串,express成功捕捉到了。你能提供更多信息吗?使用 express@4.17.1 app.get('/reset/:pass', (req, res) => /* decrypt here, and continue */ res.send(req.params.pass))
@DenisRohlinsky 我使用 React 和 react-router。这是一个单页应用程序,页面不是由服务器提供的。服务器仅用于处理数据库事务。我的路由定义如下:不要将 JWT 令牌作为 GET 参数发送,而是通过 Authorization: Bearer
发送您的 JWT 令牌,我建议这样做(有关详细信息,请参阅 https://www.rfc-editor.org/rfc/rfc6750)
如果您使用 Axios 来处理您的请求,那么您可以通过there查看答案
作为标题的示例,您可以find here
【讨论】:
以上是关于如何将 jwt 令牌添加到 url?的主要内容,如果未能解决你的问题,请参考以下文章
生成访问令牌时如何将 userid 参数添加到 jwt 的有效负载?
如何将一些附加字段添加到此 Spring Boot 服务生成的 JWT 令牌中?