NAME

Dancer::Plugin::reCAPTCHA - Easily integrate reCAPTCHA into your Dancer applications

VERSION

version 0.91

SYNOPSIS

# In your config.yml 
plugins: 
    reCAPTCHA: 
        public_key: "public key goes here" 
        private_key: "private key goes here" 
        theme: "dark"
        type: "image"
        size: "normal"

# In your Dancer app...
use Dancer::Plugin::reCAPTCHA;

# In your form display route...
return template 'accounts/create', { 
    recaptcha => recaptcha_display(),
};

# In your template (TT2)
[% recaptcha %]

# In your validation code....
my $response  = param( 'recaptcha_response_field' );
my $result    = recaptcha_check( $response );
die "User didn't match the CAPTCHA" unless $result->{ success };

METHODS

recaptcha_display()

Generates the HTML needed to display the CAPTCHA. This HTML is returned as a scalar value, and can easily be plugged into the template system of your choice.

Using Template Toolkit as an example, this might look like:

# Code
return template 'accounts/create', { 
    recaptcha => recaptcha_display(),
};

# In your accounts/create template
[% recaptcha %]

recaptcha_check()

Verify that the value the user entered matches what's in the CAPTCHA. This methods takes an argument that is the response string. These are returned to your Dancer application as the parameter g-recaptcha-response .

For example:

my $response  = param( 'g-recaptcha-response' );
my $result    = recaptcha_check( $response );
die "User didn't match the CAPTCHA" unless $result->{ success };

See Captcha::reCAPTCHA::V2 for a description of the result hash.

TODO

Add a real test suite.

CREDITS

The following people have contributes to Dancer::Plugin::reCAPTCHA in some way, either through bug reports, code, suggestions, or moral support:

Mohammad S Anwar Shawn Sorichetti

SEE ALSO

AUTHOR

Jason A. Crome <cromedome@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Jason A. Crome.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.