reactjs - 使用 react-google-recaptcha-v3 库
问题描述
我是新来的反应并尝试使用 react-google-recaptcha-v3 库。
我将它与 formik 表单一起使用并使用 axios 发布数据。当我在我的标题中发布一个硬编码的 recaptcha 令牌时,它会起作用。但是当我尝试将令牌与 react-google-recaptcha-v3 库一起使用时,它不起作用。我想我用错了。
return (
<GoogleReCaptchaProvider reCaptchaKey='MY-KEY'>
<GoogleReCaptcha onVerify={token => this.setState({ recaptchaToken: token })} />
<Grid>
<Row>
<Col xs={6} xsOffset={3} id='auth-form-container'>
<Formik
initialValues={{ email: "" }}
validationSchema={forgotPasswordSchema}
onSubmit={(values, { setErrors, setSubmitting }) => {
const headers = {
headers: {
Accept: "application/json",
"Content-Type": "application/json",
recaptcha: this.state.recaptchaToken
}
};
const body = {
UsernameOrEmail: values.email,
ReturnUrl: "/"
};
const url = "http://localhost:5000/api/Users/ResetPassword";
axios
.post(url, body, headers)
.then(result => {
// Do somthing
setSubmitting(false);
this.handleSuccess(result);
})
.catch(error => {
// Do somthing
setSubmitting(false);
//TODO: Add logging
console.log("Fejl");
if (error.response.status === 400) {
console.log("Bad Request ...");
this.setState({ errorMessage: "Bad Request" });
} else {
console.log("Something went wrong ...");
this.setState({ errorMessage: "Something went wrong" });
}
});
}}>
{({ isSubmitting }) => (
<Form>
{errorMessage ? <Error errorMessage={errorMessage} /> : null}
<Row>
<Col xs={12}>
<label htmlFor='email'>E-mail:</label>
<Field type='email' name='email' />
<ErrorMessage name='email'>{msg => <div className='error'>{msg}</div>}</ErrorMessage>
</Col>
</Row>
<Row>
<Col xs={12}>
<button type='submit' disabled={isSubmitting}>
Reset password
</button>
</Col>
</Row>
<Row>
<Col xs={12}>
<ul>
<li>
<Link to='/'>Back to login</Link>
</li>
</ul>
</Col>
</Row>
</Form>
)}
</Formik>
</Col>
</Row>
</Grid>
</GoogleReCaptchaProvider>
);
解决方案
推荐阅读
- javascript - .style.color 正在工作,但仍会引发错误
- reactjs - reactjs redux中如何排序和过滤
- sql - 更新json数据PSQL中的值
- javascript - 傀儡师黑色截图
- docker - 避免在每个 Docker 构建上重新安装包
- javascript - MongoDB - 仅搜索深度嵌套数组的查询
- python-3.x - 从列表中顺序选择
- c# - Paytm 支付网关无效校验和 5028 asp.net api
- spring-boot - 后验证不适用于 Spring-Boot Swagger RestAPI
- windows - Windows UI 登录屏幕自动化