Tôi đang cố triển khai Invisible reCAPTCHA bằng Biểu mẫu phản hồi và Redux. Nói chung, quy trình công việc reCAPTCHA Không xác định là:Triển khai reCAPTCHA vô hình bằng Biểu mẫu Redux
- Hiển thị CAPTCHA "vô hình", trả lại ID tiện ích con.
- Gọi
grecaptcha.execute
bằng ID của tiện ích con. Nếu cần thiết, người dùng sẽ được nhắc giải quyết một thách thức. Kết quả được chuyển đến một hàm gọi lại được chỉ định khi CAPTCHA được hiển thị. - Gửi biểu mẫu cùng với kết quả CAPTCHA.
tôi đã tạo ra một bộ phận Phản ứng dự định sẽ được sử dụng với Redux Mẫu của Field
mà ám CAPTCHA và cập nhật tình trạng hình thức sau grecaptcha.execute
được gọi là:
class ReCaptcha extends React.Component {
render() {
return <div ref={div => this.container=div} />
}
componentDidMount() {
const { input: { onChange }, sitekey } = this.props
grecaptcha.render(this.container, {
sitekey,
size: "invisible",
callback: onChange
})
}
}
Tuy nhiên, tôi không biết làm thế nào hoặc nơi để gọi grecaptcha.execute
cùng với ID tiện ích khi người dùng gửi biểu mẫu. Tôi không thể gọi nó trong số onSubmit
vì ID tiện ích con không thể truy cập ở đó. Tôi có thể gọi nó trong ReCaptcha
ngay lập tức sau khi hiển thị CAPTCHA, nhưng nếu người dùng cần giải quyết CAPTCHA, anh ta sẽ được nhắc thực hiện ngay khi biểu mẫu hiển thị.
Điều này minimal working example cho thấy những gì tôi đã đạt được cho đến nay.
tôi đã tìm ra rằng đó là dễ dàng hơn nhiều với [scriptjs] (https://github.com/ded/script.js) thư viện. Tôi sẽ chuyển một ví dụ nếu bạn muốn. –