The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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) 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.