NAME

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

VERSION

version 0.4

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.

SYNOPSIS # In your config.yml plugins: reCAPTCHA: public_key: "public key goes here" private_key: "private key goes here" theme: "clean" use_ssl: 0

# In your application
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 };

TODO

Add a real test suite.

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.