我们正在开发一个使用 React 和 Mobx 的接口。我们有一个组件来激活用户帐户,其中包含发送到用户电子邮件的链接和代码:
https://mysite/activate?Code=6bgoh9n0uk7a84lc3s9e2lso5j
在组件中我们调用后端来验证代码是否有效并激活用户。在有效的情况下,后端返回用户和他的令牌。此令牌存储在 localStorage 中,然后我们重定向到主仪表板:
axios.get(`/user/activate/${code}`)
.then(action(response => {
window.localStorage.setItem("myToken", JSON.stringify(response.data));
window.location.href = "/dashboard";
}))
.catch(action(error => {
console.log(error);
}));
在 Chrome 和 Mozilla Firefox 中,重定向是成功的,但在 IE 11 和 Edge 浏览器中,组件会再次呈现,这会导致代码被后端检查,我们在屏幕上指示代码不再有效。
我们做错了什么?