ClearPress
view release on metacpan or search on metacpan
cgi-bin/login view on Meta::CPAN
return 1;
}
my $authenticator = ClearPress::authenticator::passwd->new();
my $user_info = $authenticator->authen_credentials({
username => $username,
password => $password,
});
if($user_info) {
$decor->username($username);
my $session = ClearPress::authenticator::session->new();
my $encoded = $session->encode_token($user_info);
my $auth_cookie = $cgi->cookie(
-name => $AUTH_COOKIE,
-value => $encoded,
);
print qq[Set-Cookie: $auth_cookie\n];
print $decor->header();
#########
# server redirect, which would be preferable, doesn't want to set cookies
#
my $referer = $ENV{HTTP_REFERER} || q[];
$referer =~ s/http:/https:/smx;
if($referer =~ m{/log(?:in|out)}) {
print qq[<script type="text/javascript">document.location.href="/";</script>];
} else {
print qq[<script type="text/javascript">document.location.href="$referer";</script>\n];
}
print qq[<h2>Welcome back, $username</h2>];
print $decor->footer();
return 1;
}
#########
# force a logout
#
my $cookie = $cgi->cookie(
-name => $AUTH_COOKIE,
-value => q[],
-expires => '-1d',
);
$decor->username(q[]);
print qq[Set-Cookie: $cookie\n];
print $decor->header();
print q[<h2>Login failed. Please try again</h2>];
print login_form($decor);
print $decor->footer();
return;
}
sub login_form {
my $decor = shift;
return q[<h2>Login with a registered account</h2><fieldset class="content" style="width:300px"><legend>Login</legend>] .
$decor->site_login_form() .
q[</fieldset>];
}
( run in 2.114 seconds using v1.01-cache-2.11-cpan-2398b32b56e )