作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在为企业使用 odoo 12 Online。我们希望使用 google recapcha 来保护我们的表单。
我们如何实现谷歌验证码?如果可能的话,提供如何实现它的完整示例。
我们更喜欢 recaptcha v3,但如果不可能的话,v2 实现也可以。
当我尝试在线搜索 google recaptcha 的实现时,几乎每次都会包含 .php 文件。我们的页面加载了 QWeb View 类型,但不支持 php。
不用php可以实现吗?我们绝对可以使用 html 和 javascript,也可能使用 python,是否可以只使用这些?如果可能的话,我们希望仅使用 javascript 和 html 来完成此操作,但我假设情况并非如此。
我们是否可以仅使用 html 和 javascript 实现任何其他表单保护?
最佳答案
您需要在前端安装reCAPTCHA并在后端实现验证。在帖子的底部,我链接了官方 Google reCAPTCHA 文档。
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
...
});
});
</script>
前端只需要:
token 的验证与 reCAPTCHA v2 中的相同。当用户在您的网站上提交表单时,您会收到 POST 参数 g-recaptcha-response
。您需要使用以下参数向 Google reCAPTCHA 服务发出 POST 请求。您可以选择自己的 HTTP 请求框架。
POST Parameter Description
secret Required. The shared key between your site and reCAPTCHA.
response Required. The user response token provided by the reCAPTCHA client-side integration on your site.
remoteip Optional. The user's IP address.
然后您会从服务获得 JSON 响应,如果请求失败,您可以在后端处理进一步的操作。
{
"success": true|false,
"challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
"hostname": string, // the hostname of the site where the reCAPTCHA was solved
"error-codes": [...] // optional
}
关于javascript - 如何在odoo中实现recaptcha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57271019/
我是一名优秀的程序员,十分优秀!