Net-OAuth2
A Perl wrapper for the OAuth 2.0 specification. This is a work in progress, being built first to work with existing OAuth 2.0 endpoints (37 Signals, Facebook, Google) with the goal of building it out to meet the entire specification over time.
INSTALLATION
$ cpan
cpan> install Net::OAuth2
WEB SERVER EXAMPLE (Dancer)
# This example is simplified for illustrative purposes, see the complete code in /demo
use Dancer;
use Net::OAuth2::Client;
sub client {
Net::OAuth2::Client->new(
config->{client_id},
config->{client_secret},
site => 'https://graph.facebook.com',
)->web_server(
redirect_uri => uri_for('/auth/facebook/callback')
);
}
# Send user to authorize with service provider
get '/auth/facebook' => sub {
redirect client->authorize_url;
};
# User has returned with '?code=foo' appended to the URL.
get '/auth/facebook/callback' => sub {
# Use the auth code to fetch the access token
my $access_token = client->get_access_token(params->{code});
# Use the access token to fetch a protected resource
my $response = $access_token->get('/me');
# Do something with said resource...
if ($response->is_success) {
return "Yay, it worked: " . $response->decoded_content;
}
else {
return "Error: " . $response->status_line;
}
};
dance;
LICENSE AND COPYRIGHT
Copyright (C) 2010 Keith Grennan
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.