我正在使用ember.js
和asp.net mvc
创建一个站点。在我以前的asp.net
网站中,我使用了captchaMVC
(http://captchamvc.codeplex.com/)。但是,我不知道如何在Ember中使用它。 Google搜索对我不是很有帮助。
谁能为我指出如何在Ember中使用captchaMVC
的正确方向?
最佳答案
在reCaptcha中,质询请求流(在用户代理和reCaptcha质询资源服务器之间)和用户响应验证流(通常在后端应用程序服务器与reCaptcha Verification API服务器之间)由a variety of plugins处理,后者为您抽象了此过程。并让您只在前端和后端处理其结果。
另一方面,Ember是一个客户端应用程序,不应处理验证步骤,以免暴露您的私有(private)reCaptcha密钥以及其他参数。
由于这些事实,我发现手动建立reCaptcha支持更加容易,而不是依赖于特定的插件。 Google's Displaying reCAPTCHA Without 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
的this元素从上方嵌入到form元素中:<form action="" method="post">
<div id="element_id"></div>
</form>
并且不要忘记在.jshintrc文件中排除Recaptcha:
{
"predef": {
"Recaptcha": true
}
}
现在,您的后端表单处理程序将收到
recaptcha_challenge_field
和recaptcha_response_field
,它们必须用于构造对http://www.google.com/recaptcha/api/verify的POST
请求,并且您必须根据Google's reCaptcha Verification Flow Document设置其他一些参数。关于javascript - 在Ember JS和MVC中使用验证码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22646208/