NAME

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

VERSION

version 0.1

SYNOPSIS

use Dancer::Plugin::reCAPTCHA;

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

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

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

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 two arguments: the challenge string and the response string. These are returned to your Dancer application as two parameters: recaptcha_challenge_field and recaptcha_response_field .

For example:

my $challenge = param( 'recaptcha_challenge_field' );
my $response  = param( 'recaptcha_response_field' );
my $result    = recaptcha_check(
    $challenge, 
    $response,
);
die "User didn't match the CAPTCHA" unless $result->{ is_valid };

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

TODO

Add a real test suite.

SEE ALSO

AUTHOR

Jason A. Crome <cromedome@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 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.

4 POD Errors

The following errors were encountered while parsing the POD:

Around line 108:

L<> starts or ends with whitespace

Around line 118:

L<> starts or ends with whitespace

Around line 122:

L<> starts or ends with whitespace

Around line 126:

L<> starts or ends with whitespace