我正在使用ember.js
和asp.net mvc
创建网站。在之前的asp.net
网站中,我使用了captchaMVC
(http://captchamvc.codeplex.com/)。但是,我无法弄清楚如何在Ember中使用它。谷歌搜索对我来说非常有帮助。
任何人都可以指出我如何使用captchaMVC
和Ember一起使用正确的方向吗?
答案 0 :(得分:4)
在reCaptcha中,挑战请求流(在用户代理和reCaptcha挑战资源服务器之间)和用户响应验证流程(通常在您的后端应用程序服务器和reCaptcha Verification API服务器之间)由{{3}处理为你抽象这个过程,让你只在前端和后端处理它的结果。
另一方面,Ember是一个客户端应用程序,不应该处理验证步骤,不要公开您的Private reCaptcha Key,以及其他参数。由于这些事实,我发现手动构建reCaptcha支持更容易,而不是依赖于特定的插件。 a variety of plugins页面很好地描述了DIY过程。
我使用ember-cli,所以bower install recaptcha-ajax --save
或在bower.json中配置它直接指向Google的recaptcha-ajax.js然后将其导入Brocfile。
在您的视图中,您可以定位特定元素,如下所示:
import Ember from 'ember';
export default Ember.View.extend({
didInsertElement: function() {
Recaptcha.create("your_public_key", 'element_id', {
theme: "red"
callback: Recaptcha.focus_response_field
});
}
});
在您的模板中,只需将上面的element_id
元素从上面嵌入到表单元素中:
<form action="" method="post">
<div id="element_id"></div>
</form>
并且不要忘记在.jshintrc文件中排除Recaptcha:
{
"predef": {
"Recaptcha": true
}
}
现在,您的后端表单处理程序将收到recaptcha_challenge_field
和recaptcha_response_field
,它必须用于构建对Google's Displaying reCAPTCHA Without Plugins的POST
请求,并且您将拥有根据{{3}}设置一些其他参数。