我正在使用reactjs + react router + iis
我正在尝试重置密码,以便我的网址看起来像
https://www.example.com/forgotPassword/CfDJ8BocAWQJpDVCswirwjHYLWRCG6zZTSxopJgdO3DDm4aO3g3PDFOjmENf6aTbq4qNUF6lMQuOot%2f1e1xZYdkM%2fV9%2bvatM6UBYNBJsZRBuiNnvnX2dPnMv8ANqg56Q2jaCXfVvW4Q%2fwGDDud28NJsFPQIBcb%2bsTnnu%2f22qwfEODpXk4e1BB8VdJWXwzEy8r1F9dq4iptdVEAf5thdUn4lMMpxsKW5r63QLCnn19GPhUcQA
在localhost上运行很好,在生产环境下我得到了404
如果我在生产中这样做
https://www.example.com/forgotPassword/1414
效果也很好。因此,我猜测这与令牌有关,我尝试对其进行url编码,因为这是一个问题。
我的路线
<Route exact path="/forgotPassword/:token" component={ResetPasswordComponent} />
无论出于何种原因,令牌字符串中的某些内容(如果我将其缩短,它都可以工作)使它认为它是页面
修改
如果我这样做
CfDJ8BocAWQJpDVCswirwjHYLWRCG6zZTSxopJgdO3DDm4aO3g3PDFOjmENf6aTbq4qNUF6lMQuOot
页面加载,它不喜欢令牌中的%2。
修改
我正在使用MS身份库,并且正在使用UserManager中的此方法
userManager.GeneratePasswordResetTokenAsync(employee)
答案 0 :(得分:0)
是的,您的令牌存在问题。这一次发生在我身上,当我使用base64encode
创建令牌时,有一些/
符号等给我404错误。
对于生成忘记密码令牌的最佳做法有一个答案,您可以参考this来更安全地生成令牌。