Catalyst-Authentication-Credential-FBConnect
view release on metacpan or search on metacpan
lib/Catalyst/Authentication/Credential/FBConnect.pm view on Meta::CPAN
sub _build_fbconnect {
my $self = shift;
WWW::Facebook::API->new(
desktop => 0,
map { $_ => $self->$_() } qw/ app_name api_key secret /
);
}
sub authenticate {
my ($self, $c, $realm, $auth_info) = @_;
my $token = $c->req->method eq 'GET'
? $c->req->query_params->{'auth_token'}
: $c->req->body_params->{'auth_token'};
if( defined $token ) {
$self->fbconnect->auth->get_session( $token );
my $user = +{
session_uid => $self->fbconnect->session_uid,
session_key => $self->fbconnect->session_key,
session_expires => $self->fbconnect->session_expires
};
my $user_obj = $realm->find_user( $user, $c );
return $user_obj if ref $user_obj;
$c->log->debug( 'Verified FBConnect itentity failed' ) if $self->debug;
return;
}
else {
$c->res->redirect( $self->fbconnect->get_login_url( next => $c->uri_for( $c->action, $c->req->captures, @{ $c->req->args } ) ) );
}
}
1;
__END__
=head1 NAME
Catalyst::Authentication::Credential::FBConnect - Facebook credential for Catalyst::Plugin::Authentication framework.
=head1 VERSION
0.01
=head1 SYNOPSIS
In MyApp.pm
use Catalyst qw/
Authentication
Session
Session::Store::FastMmap
Session::State::Cookie
/;
In myapp.conf
<Plugin::Authentication>
default_realm facebook
<realms>
<facebook>
<credential>
class FBConnect
api_key my_app_key
secret my_app_secret
app_name my_app_name
</credential>
</facebook>
</realms>
</Plugin::Authentication>
In controller code,
sub facebook : Local {
my ($self, $c) = @_;
if( $c->authenticate() ) {
#do something with $c->user
}
}
=head1 USER METHODS
=over 4
=item $c->user->session_uid
=item $c->user->session_key
=item $c->user->session_expires
=back
=head1 AUTHOR
Cosmin Budrica E<lt>cosmin@sinapticode.comE<gt>
Bogdan Lucaciu E<lt>bogdan@sinapticode.comE<gt>
With contributions from:
Tomas Doran E<lt>bobtfish@bobtfish.netE</gt>
=head1 COPYRIGHT
Copyright (c) 2009 Sinapticode. All rights reserved
( run in 0.863 second using v1.01-cache-2.11-cpan-39bf76dae61 )