如何在url中添加jwt令牌?

问题描述 投票:0回答:2

我想允许用户重置密码。为此,我首先检查他们的电子邮件是否存在于数据库中,如果存在,我会向他们发送一封电子邮件,其中包含指向重置密码页面的链接。为了确保链接安全,后者是用jwt令牌制作的,该令牌的有效期仅为1500万。

但是由于有“.”,所以无法访问该url。在智威汤逊:

http://www.myapp.com/reset-password/eyJhbGciOInR5cC.ICJlywY2svp6eL98LHd.RpYylmPI

如果我删除这些点,则可以理解该 url(顺便说一下,我使用 React 路由器)。如何解决这个问题?有没有其他方法可以通过临时 url 来实现此重置公式?

node.js express jwt change-password
2个回答
0
投票

我建议

Buffer.from(token).toString('base64url')

然后通过

解码
Buffer.from(urlParam, 'base64url').toString()

或在前端通过

const base64 = urlParam.replaceAll('_', '/').replaceAll('-', '+');
window.atob(base64),

您可以在那里阅读有关base64url的更多信息https://stackoverflow.com/a/55389212/6398044


-2
投票

不要将 JWT 令牌作为 GET 参数发送,而是通过

Authorization: Bearer
发送 JWT 令牌,我建议这样做(有关更多详细信息,请参阅 https://www.rfc-editor.org/rfc/rfc6750

如果您使用 Axios 来满足您的请求,那么您可以直接在那里

查看答案

作为标题示例,您可以在此处找到

© www.soinside.com 2019 - 2024. All rights reserved.