有没有办法在浏览器上使用React 触发保存密码模式而不重新加载页面?
我正在使用基于令牌的身份验证。
答案 0 :(得分:0)
为了让它在浏览器中工作,我唯一做的就是在身份验证成功后立即进行网络查询。
在render()方法中:
<form onSubmit={this.submitLogin.bind(this)}>
<input name="email" type="email" ref={(input) => this.email = input} required={true}/>
<input name="password" type="password"ref={(input) => this.password = input} required={true}/>
<button type="submit" name="action">Submit</button>
</form>
submitLogin方法:
submitLogin(event) {
event.preventDefault();
fetch('http://localhost:3000/authenticate', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: this.email.value, password: this.password.value})
})
.then(response => response.json())
.then(response => {
if (response.error) {
throw new Error(response.error);
} else {
// process the token ...
}
})
.then(() => {
// Do an authenticated network query
// ===> Save password modal pops !!!
})
.catch(error => {
console.error(error);
});
}