代码之家  ›  专栏  ›  技术社区  ›  chobo2

重置令牌参数导致404

  •  0
  • chobo2  · 技术社区  · 6 年前

    我使用的是reactjs+react router+iis

    我正在尝试重新设置密码,使我的url看起来像

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

    在localhost上工作得很好,在生产上我得到一个404

    如果我在制作时这么做的话

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

    效果也很好。所以我猜这是与令牌的东西,我尝试了网址编码,因为这是一个问题。

    我的路线

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

    不管出于什么原因,令牌字符串中的某些内容(如果我缩短它,它就会工作)使它认为它是一个页面

    enter image description here

    编辑

    如果我这么做

    CfDJ8BocAWQJpDVCswirwjHYLWRCG6zZTSxopJgdO3DDm4aO3g3PDFOjmENf6aTbq4qNUF6lMQuOot
    

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

    编辑

    我使用的是MS-identity库,我使用的是UserManager中的这个方法

    userManager.GeneratePasswordResetTokenAsync(employee)
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   Orkhan Huseynli    6 年前

    是的,问题是你的代币。有一次,当我使用 base64encode 创建令牌,并且 / 符号等等,给了我404的错误。

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

    推荐文章