How to verify reCAPTCHA with the help of Total.js?

Sun Dec 11 2016 18:50:01 GMT+0100 (Central European Standard Time), Peter Širka

How to verify reCAPTCHA with the help of Total.js?

I recommend to use Total.js SchemaBuilder for verification of reCAPTCHA's response because contains a better Error Handling and all operations can be executed in async mode.

A schema:

NEWSCHEMA('SignUp').make(function(schema) {

    // ...
    schema.define('email', 'Email', true);
    schema.define('recaptcha', 'String', true);
    // ...

    schema.addWorkflow('reCAPTCHA', function(error, model, options, callback, controller) {
        RESTBuilder.make(function(builder) {
            builder.url('https://www.google.com/recaptcha/api/siteverify');
            builder.set('secret', 'YOUR SECRET FROM GOOGLE');
            builder.set('response', model.recaptcha);
            controller && builder.set('remoteip', controller.ip);
            builder.urlencoded();
            builder.exec(function(err, response) {
                if (err || !response.success)
                    error.push('error-recaptcha');
                callback(SUCCESS(true));
            });
        }); 
    });

    schema.addWorkflow('notify', function(error, model, options, callback, controller) {
        // ...
    });

    schema.setSave(function(error, model, options, callback, controller) {
        // ...
    });

});

A controller:

exports.install = function() {
    F.route('/api/signup/', json_signup, ['*SignUp', 'post']);
};

function json_signup() {
    var self = this;
    self.$async(self.callback(), 1).$workflow('recaptcha').$save().$workflow('notify');
}

That's all.


Tags

Follow us

Latest blogs
A critical security fix
Wed Feb 13 2019 22:15:39 GMT+0100 (Central European Standard Time)
New release: Total.js v3.2
Wed Feb 13 2019 22:14:39 GMT+0100 (Central European Standard Time)
Total.js Wiki v2
Fri Jan 04 2019 22:15:01 GMT+0100 (Central European Standard Time)
Total Year 2018
Thu Jan 03 2019 21:14:00 GMT+0100 (Central European Standard Time)
Total.js Code Editor v1
Fri Dec 07 2018 22:55:13 GMT+0100 (Central European Standard Time)

Latest comments
Nice tip
Mauro Junior
Thu Sep 20 2018 21:41:02 GMT+0200 (Central European Summer Time)
Not only for Total.js. You can communicate with different websocket servers.
Peter Širka
Mon Apr 23 2018 20:08:20 GMT+0200 (Central European Summer Time)
Marko: you need to create a buffer with this codepage and write byte-to-byte string. I recommend ...
Peter Širka
Mon Apr 23 2018 20:06:21 GMT+0200 (Central European Summer Time)
Is WEBSOCKETCLIENT only for internal ws connections between totaljs apps?
Stelios Stephanua
Fri Mar 16 2018 06:04:22 GMT+0100 (Central European Standard Time)
Total.js is amazing! ;)
Leonardo Hessel
Tue Dec 19 2017 19:51:15 GMT+0100 (Central European Standard Time)

Pixabay


Read more

A critical security fix

News: We were notified about the critical security bug in Total.js framework. Read a prevention.

Wed Feb 13 2019 22:15:39 GMT+0100 (Central European Standard Time)
New release: Total.js v3.2

News: This new release brings a critical security fix and small new improvements. Update Total.js now.

Wed Feb 13 2019 22:14:39 GMT+0100 (Central European Standard Time)
Total.js Wiki v2

Products: I have released a new version of Total.js Wiki. New version brings new improvements.

Fri Jan 04 2019 22:15:01 GMT+0100 (Central European Standard Time)
Total Year 2018

Business: Last year was perfect for Total.js platform. Total.js platform grows up and it has great results.

Thu Jan 03 2019 21:14:00 GMT+0100 (Central European Standard Time)
Total.js Code Editor v1

Products: Try our real-time collaboration tool for Total Developers. Code Editor offers great features for development.

Fri Dec 07 2018 22:55:13 GMT+0100 (Central European Standard Time)
New release: Total.js v3.1

News: I have released a new version of Total.js with bug fixes and with small improvements.

Fri Dec 07 2018 11:41:40 GMT+0100 (Central European Standard Time)