我刚刚开始使用react,并且我正在expressJS中构建用于react的api,并使用react-router-dom进行路由,而在使用react之前,我陷入了像/ api /:token这样的路由,例如密码恢复我可以只渲染令牌变量,并使用这样的渲染变量执行发布请求
在服务器中
router.get('/reset/:token', (req,res)=>{
res.render('reset', {token: req.params.token})
})
并在客户端
<form action="/reset/{{{token}}}" method="POST" id="id">
但是在首先做出反应的情况下,我应该从api / someroute获取数据(事实上,我正在使用axios),但是当我不知道“ someroute”时该怎么办,我该如何执行密码重置操作请求当我不渲染someroute变量(密码恢复令牌和someroute相同)时检查someroute是否确实存在
答案 0 :(得分:1)
前端中的/:token路由匹配正斜杠之后的任意字符串。因此,当用户要求重设密码时,请在您的node.js应用中构造一个重设令牌,然后将其发送给插入到url中的用户电子邮件地址(代替/:token)。用户单击该链接,然后使用前端中的此类功能从uri抓取它(粗鲁但可以使用):
onSubmit = formValues => {
const { search } = this.props.location;
const rawParams = search.slice(1, search.length).split("&");
const parsedParams = rawParams.map(element => element.split("="));
const headers = {
"access-token": parsedParams[0][1],
"token-type": "Bearer",
client: parsedParams[1][1],
expiry: parsedParams[4][1],
uid: parsedParams[7][1].replace("%40", "@")
};
this.props.editPassword(formValues, headers);
};
formvalues包含用户键入的新密码,我们从他通过电子邮件获取的uri中获取令牌。