我正在使用ember.jsasp.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_fieldrecaptcha_response_field,它们必须用于构造对http://www.google.com/recaptcha/api/verifyPOST请求,并且您必须根据Google's reCaptcha Verification Flow Document设置其他一些参数。

关于javascript - 在Ember JS和MVC中使用验证码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22646208/

10-13 03:14