【问题标题】:Reset Token Parameter Leads to 404重置令牌参数导致 404
【发布时间】:2019-11-08 18:37:01
【问题描述】:

我正在使用 reactjs + react 路由器 + iis

我正在尝试重置密码,以便我的网址看起来像

https://www.example.com/forgotPassword/CfDJ8BocAWQJpDVCswirwjHYLWRCG6zZTSxopJgdO3DDm4aO3g3PDFOjmENf6aTbq4qNUF6lMQuOot%2f1e1xZYdkM%2fV9%2bvatM6UBYNBJsZRBuiNnvnX2dPnMv8ANqg56Q2jaCXfVvW4Q%2fwGDDud28NJsFPQIBcb%2bsTnnu%2f22qwfEODpXk4e1BB8VdJWXwzEy8r1F9dq4iptdVEAf5thdUn4lMMpxsKW5r63QLCnn19GPhUcQA

在本地主机上效果很好,在生产中我得到一个 404

如果我在生产中这样做

https://www.example.com/forgotPassword/1414

效果也很好。所以我猜这是令牌的问题,我尝试对它进行 url 编码,因为这是一个问题。

我的路线

   <Route exact path="/forgotPassword/:token" component={ResetPasswordComponent} />

无论出于何种原因,令牌字符串中的某些内容(如果我将其缩短,它会起作用)使其认为它是一个页面

编辑

如果我这样做

CfDJ8BocAWQJpDVCswirwjHYLWRCG6zZTSxopJgdO3DDm4aO3g3PDFOjmENf6aTbq4qNUF6lMQuOot

页面加载,它不喜欢令牌中的 %2。

编辑

我正在使用 MS 身份库,并且正在使用来自 UserManager 的此方法

userManager.GeneratePasswordResetTokenAsync(employee)

【问题讨论】:

  • 您能说明一下您是如何处理路由器中的令牌的吗?
  • @SterlingArcher 完成。
  • 你用的是什么版本的 react-router?
  • @DiogoSgrillo - 4.2版

标签: reactjs react-router asp.net-identity http-status-code-404


【解决方案1】:

是的,您的令牌有问题。它发生在我身上一次,当我使用 base64encode 创建令牌时,有一些 / 符号等给我 404 错误。

有一个关于生成忘记密码令牌的最佳实践的答案,您可以参考this更安全地生成您的令牌。

【讨论】:

  • 即使我尝试了在线 base64 解码器,也没有看到任何斜线。问题是我使用的是 asp.net 身份,这是它为我生成的,我自己没有生成令牌。
  • 我想说的是react-router 不是问题,你知道这一点,尝试不同的方式生成令牌,也许自己生成它而不是使用 asp.net 身份。跨度>
  • 你有一个如何自己生成的例子吗?很难找到有关身份的信息。
  • 这里是another answer。只是不要使用base64 编码,使用md5 之类的东西。
  • 好吧,问题是我正在使用 asp.net 身份核心,通过这一行代码我得到了令牌:userManager.GeneratePasswordResetTokenAsync(employee) 如果我不使用它,我将不得不基本上推出我自己的东西什么样的失败使用工具包的目的。它是微软写的,不是我写的。
猜你喜欢
  • 1970-01-01
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多