我对 Recaptcha V3 实现感到非常困惑,我不清楚是否真的需要在我的网站上实现它,或者使用我的 Recaptcha V3 凭据初始化 Appcheck 是否足够:Appcheck 确实成功初始化并且我已经强制执行 firestore 和云存储使用它。
我不希望机器人在我的网站上创建无限帐户并像疯了一样提高我的成本,所以我研究了在表单上实施 Recaptcha:开发人员文档是个笑话(https://developers.google.com/recaptcha/docs/v3)因为没有解释如何验证返回的令牌我看到一篇 2017 年的旧文章告诉您使用 Cloud Functions(在冷启动的情况下可能需要 10-12 秒才能启动)但这听起来真的很牵强,5年后我希望我们有更好的解决方案:https ://firebase.googleblog.com/2017/08/guard-your-web-content-from-abuse-with.html
这是我想太多了吗?Appcheck 会保护我的应用免受滥用我的联系表和注册部分的人的侵害吗?如果这还不够,我如何使用 React 和 Firebase 实现 Recaptcha V3?
我正在使用 Next JS,到目前为止,我的代码看起来像这样(我替换了我的可发布密钥“mySyteKey”):
import Script from "next/script";
export default function TestRecaptcha() {
const handleSubmit = (e) => {
e.preventDefault();
grecaptcha.ready(function () {
grecaptcha.execute('mySiteKey', {action: 'submit'}).then(function (token) {
// How the hell do I verify this token!?
console.log(token)
}), error =>{
console.log(error.message)
}
});
}
return (
<div>
<Script src="https://www.google.com/recaptcha/api.js?render=mySiteKey"
strategy="beforeInteractive"/>
<form onSubmit={(e) => handleSubmit(e)}>
<button
type="submit">
Submit
</button>
</form>
</div>
)
}