+++ /dev/null
-package Catalyst::Plugin::Authentication::Credential::TypeKey;
-
-use strict;
-use Authen::TypeKey;
-use Carp ();
-use File::Spec;
-
-our $VERSION = '0.1';
-
-our $PARAMETERS = qw[
- email
- name
- nick
- ts
- sig
-];
-
-sub authenticate_typekey {
- my ( $c, $email, $name, $nick, $ts, $sig, $options ) = @_;
-
- unless ( @_ == 6 || ( @_ == 7 && ref($options) eq 'HASH' ) ) {
- Carp::croak('usage: $c->authenticate_typekey( $email, $name, $nick, $ts, $sig [, \%options ] )');
- }
-
- unless ( @_ == 7 ) {
- $options = {};
- }
-
- my $config = $c->config->{authenticate}->{typekey};
-
- my $token = $options->{token} || $config->{token} || undef;
- my $expires = $options->{expires} || $config->{expires} || 0;
- my $version = $options->{version} || $config->{version} || 1.1;
- my $cache = $options->{cache} || $config->{cache} || File::Spec->catfile( File::Spec->tmpdir, 'regkeys.txt' );
- my $keys = $options->{keys} || $config->{keys} || 'http://www.typekey.com/extras/regkeys.txt';
-
- my $typekey = Authen::TypeKey->new;
- $typekey->expires($expires);
- $typekey->key_cache($cache);
- $typekey->key_url($keys);
- $typekey->token($token);
- $typekey->version($version);
-
- my $parameters = {
- email => $email,
- name => $name,
- nick => $nick,
- ts => $ts,
- sig => $sig
- };
-
- unless ( $typekey->verify($parameters) ) {
- my $error = $typekey->errstr;
- $c->log->debug(qq/Failed to authenticate user '$name'. Reason: '$error'/);
- return 0;
- }
-
- $c->log->debug( qq/Successfully authenticated user '$name'./);
- return 1;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Catalyst::Plugin::Authentication::Credential::TypeKey - TypeKey Authentication
-
-=head1 SYNOPSIS
-
- use Catalyst qw[Authentication::Credential::TypeKey];
-
- MyApp->config->{authenticate}->{typekey} = {
- token => 'xxxxxxxxxxxxxxxxxxxx'
- };
-
- if ( $c->authenticate_typekey( $email, $name, $nick, $ts, $sig ) ) {
- # successful autentication
- }
-
-=head1 DESCRIPTION
-
-TypeKey Authentication.
-
-=head1 SEE ALSO
-
-L<Authen::TypeKey>, L<Catalyst>.
-
-=head1 AUTHOR
-
-Christian Hansen, C<ch@ngmedia.com>
-
-=head1 LICENSE
-
-This library is free software . You can redistribute it and/or modify it under
-the same terms as perl itself.
-
-=cut