在ember js和mvc中使用验证码

Using captcha in ember js and mvc

本文关键字:验证 mvc ember js      更新时间:2023-09-26

我正在创建一个使用ember.jsasp.net mvc的网站。在我以前的asp.net站点中,我使用了captchaMVC (http://captchamvc.codeplex.com/)。但是,我不知道如何使用它烬。谷歌搜索对我帮助不大。

谁能告诉我如何使用captchaMVC和Ember的正确方向?

在reCaptcha中,挑战请求流(在用户代理和reCaptcha挑战资源服务器之间)和用户响应验证流(通常在后端应用程序服务器和reCaptcha验证API服务器之间)由各种插件处理,这些插件为您抽象了这个过程,并让您只处理其结果,无论是在前端还是后端。

另一方面,Ember是一个客户端应用程序,不应该处理验证步骤,以免暴露您的私有reCaptcha密钥,以及其他参数。

由于这些事实,我发现手动构建reCaptcha支持更容易,而不是依赖于特定的插件。谷歌的显示reCAPTCHA没有插件页面很好地描述了DIY过程。

我使用ember-cli,所以bower install recaptcha-ajax --save或在底层配置它。

在您的视图中,您可以像这样针对特定的元素:

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,它必须在构建POST请求http://www.google.com/recaptcha/api/verify中使用,你必须根据谷歌的reCaptcha验证流程文档设置一些其他参数。