Authen-PluggableCaptcha
view release on metacpan or search on metacpan
lib/Authen/PluggableCaptcha.pm view on Meta::CPAN
=item B<get_publickey>
returns a publickey from the keymanager.
=item B<expire_publickey>
instructs the keymanager to expire the publickey. on success returns 1 and sets the captcha as invalid and expired. returns 0 on failure and -1 on error.
=item B<validate_response>
Validates a user response against the key/time for this captcha
returns 1 on sucess, 0 on failure, -1 on error.
=item B<render PARAMS>
renders the captcha based on the kw_args submitted in PARAMS
returns the rendered captcha as a string
PARAMS are required name/value pairs. Required PARAMS are:
=over 8
=item C<challenge_class TYPE>
Full name of a Authen::PluggableCaptcha::Challenge derived class
=item C<render_class TYPE>
Full name of a Authen::PluggableCaptcha::Render derived class
=back
=back
=head1 DEBUGGING
Set the Following envelope variables for debugging
$ENV{'Authen::PluggableCaptcha-DEBUG_FUNCTION_NAME'}
$ENV{'Authen::PluggableCaptcha-BENCH_RENDER'}
debug messages are sent to STDERR via the ErrorLoggingObject package
=head1 BUGS/TODO
This is an initial alpha release.
There are a host of issues with it. Most are discussed here:
To Do:
priority | task
+++| clean up how stuff is stored / passed around / accessing defaults. there's a lot of messy stuff with in regards to passing around default values and redundancy of vars
+++| create a better way to make attributes shared stored and accessed
++ | Imager does not have facilities right now to do a 'sine warp' easily. figure some sort of text warping for the imager module.
++ | Port the rendering portions of cpan gd/imagemagick captchas to Img::(GD|ImageMagick)
++ | Img::Imager make the default font more of a default
++ | Img::Imager add in support to render each letter seperately w/a different font/size
+ | Img::Imager better handle as_string/save + support for png format etc
- | is there a way to make the default font more cross platform?
-- | add a sound plugin ( text-logic might render that a trivial enhancement depending on how obfuscation treats display )
=head1 STYLE GUIDE
If you make your own subclasses or patches, please keep this information in mind:
The '.' and '..' prefixes are reserved namespaces ( ie: $self->{'.Attributes'} , $self->{'..Errors'} )
Generally: '.' prefixes a shared or inherited trait ; '..' prefixes an class private variable
If you see a function with _ in the code, its undocumented and unsupported. Only write code against regular looking functions. Never write code against _ or __ functions. Never.
=head1 REFERENCES
Many ideas , most notably the approach to creating layered images, came from PyCaptcha , http://svn.navi.cx/misc/trunk/pycaptcha/
=head1 AUTHOR
Jonathan Vanasco , cpan@2xlp.com
Patches, support, features, additional etc
Kjetil Kjernsmo, kjetilk@cpan.org
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2006 by Jonathan Vanasco
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
#############################################################################
#head
package Authen::PluggableCaptcha;
use strict;
use vars qw(@ISA $VERSION);
$VERSION= '0.05';
#############################################################################
#ISA modules
use Authen::PluggableCaptcha::ErrorLoggingObject ();
use Authen::PluggableCaptcha::Helpers ();
use Authen::PluggableCaptcha::StandardAttributesObject ();
use Authen::PluggableCaptcha::ValidityObject ();
@ISA= qw( Authen::PluggableCaptcha::ErrorLoggingObject Authen::PluggableCaptcha::StandardAttributesObject Authen::PluggableCaptcha::ValidityObject );
#############################################################################
#use constants
use constant DEBUG_FUNCTION_NAME=> $ENV{'Authen::PluggableCaptcha-DEBUG_FUNCTION_NAME'} || 0;
use constant DEBUG_VALIDATION=> $ENV{'Authen::PluggableCaptcha-DEBUG_VALIDATION'} || 0;
( run in 0.561 second using v1.01-cache-2.11-cpan-788537b7465 )