lemonldap-ng/lemonldap-ng-portal/t/CaptchaOldApi.pm

58 lines
1.4 KiB
Perl

package t::CaptchaOldApi;
use Mouse;
use Lemonldap::NG::Portal::Main::Constants;
extends 'Lemonldap::NG::Portal::Main::Plugin';
has 'captcha' => ( is => 'rw' );
sub init {
my $self = shift;
$self->addUnauthRoute( validateCaptcha => 'validateCaptcha', ['POST'] );
$self->addUnauthRoute( setCaptcha => 'setCaptcha', ['POST'] );
$self->addUnauthRoute( getCaptcha => 'getCaptcha', ['POST'] );
$self->captcha( $self->p->loadModule('::Lib::Captcha') );
return 1;
}
sub setCaptcha {
my ( $self, $req ) = @_;
$self->captcha->setCaptcha($req);
my $info = $self->captcha->ott->getToken( $req->token, 1 );
return $self->sendJSONresponse(
$req,
{
token => $req->token,
img => $req->captcha,
answer => $info->{captcha}
}
);
}
sub getCaptcha {
my ( $self, $req ) = @_;
my ( $token, $image ) = $self->captcha->getCaptcha;
my $info = $self->captcha->ott->getToken( $token, 1 );
return $self->sendJSONresponse( $req,
{ token => $token, img => $image, answer => $info->{captcha} } );
}
sub validateCaptcha {
my ( $self, $req ) = @_;
my $token = $req->param('token');
my $answer = $req->param('answer');
my $result = $self->captcha->validateCaptcha( $token, $answer );
return $self->sendJSONresponse( $req, { result => $result } );
}
1;