NAME
Catalyst::TraitFor::Controller::CAPTCHA - authenticate human by create and validate captcha
VERSION
version 1.2
SYNOPSIS
In your controller
package MyApp::Controller::MyController;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller' }
with 'Catalyst::TraitFor::Controller::CAPTCHA';
sub captcha_image : Local :Args(0) {
my ( $self, $c ) = @_;
$c->forward('generate_captcha');
}
#Now <img src="/captcha_image" /> will have captcha and
#<input name="captcha_text" type="text"> will prompt user to enter captcha text
#and this should be embed into your form that needs to be validated.
sub form_post : Local {
my ($self,$c) = @_;
my $posted_string = $c->req->body_params('captcha_text');
if ( $c->forward('validate_captcha',[$posted_string]) ) {
#Allowed
}else {
#Not Allowed
}
}
1;
SUMMARY
This Catalyst::Controller role provides Private
methods that deal with the generation and validation of captcha.
CONFIGURATION
In MyApp.pm (or equivalent in config file):
__PACKAGE__->config->{captcha} = {
session_name => 'captcha_string',
#Refer GD::SecurityImage for additonal configuration
gd_config => {
width => 100,
height => 50,
lines => 5,
gd_font => 'giant',
},
create => [qw/normal rect/],
particle => [10],
out => {force => 'jpeg'}
};
DESCRIPTION
This controller's private methods will create and validate captcha.This module is based/altered from Catalyst::Plugin::Captcha because that shouldn't be a Catalyst::Plugin.Now it is a base controller like Catalyst::TraitFor::Controller::reCAPTCHA.It uses GD::SecurityImage and requires a session plugins like Catalyst::Plugin::Session.
METHODS
generate_captcha : Private
This will create and respond the captcha.
$c->forward('generate_captcha');
validate_captcha : Private
This will validate the given string against the Captcha image that has been generated earlier.
if ( $c->forward('validate_captcha',[$posted_string]) ) {
#do something based on the CAPTCHA passing
}
REPOSITORY
https://github.com/Virendrabaskar/Catalyst-TraitFor-Controller-CAPTCHA
SEE ALSO
ACKNOWLEDGEMENTS
This module is almost copied from Diego Kuperman Catalyst::Plugin::Captcha.
AUTHOR
Baskar Nallathambi <baskarmusiri@gmail.com>,<baskar@exceleron.com>
COPYRIGHT AND LICENSE
This is free module.You can do anything to this module under the same terms as the Perl 5 programming language system itself.