Net-OAuth
view release on metacpan or search on metacpan
lib/Net/OAuth.pm view on Meta::CPAN
=head1 SYNOPSIS
# Web Server Example (Dancer)
# This example is simplified for illustrative purposes, see the complete code in /demo
# Note that client_id is the Consumer Key and client_secret is the Consumer Secret
use Dancer;
use Net::OAuth::Client;
sub client {
Net::OAuth::Client->new(
config->{client_id},
config->{client_secret},
site => 'https://www.google.com/',
request_token_path => '/accounts/OAuthGetRequestToken?scope=https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F',
authorize_path => '/accounts/OAuthAuthorizeToken',
access_token_path => '/accounts/OAuthGetAccessToken',
callback => uri_for("/auth/google/callback"),
session => \&session,
);
}
# Send user to authorize with service provider
get '/auth/google' => sub {
redirect client->authorize_url;
};
# User has returned with token and verifier appended to the URL.
get '/auth/google/callback' => sub {
# Use the auth code to fetch the access token
my $access_token = client->get_access_token(params->{oauth_token}, params->{oauth_verifier});
# Use the access token to fetch a protected resource
my $response = $access_token->get('/m8/feeds/contacts/default/full');
# Do something with said resource...
if ($response->is_success) {
return "Yay, it worked: " . $response->decoded_content;
}
else {
return "Error: " . $response->status_line;
}
};
dance;
=head1 IMPORTANT
Net::OAuth provides a low-level API for reading and writing OAuth messages.
You probably should start with L<Net::OAuth::Client>.
=head1 ABSTRACT
OAuth is
"An open protocol to allow secure API authentication in a simple and standard method from desktop and web applications."
In practical terms, OAuth is a mechanism for a Consumer to request protected resources from a Service Provider on behalf of a user.
Please refer to the OAuth spec: L<http://oauth.net/documentation/spec>
Net::OAuth provides:
=over
=item * classes that encapsulate OAuth messages (requests and responses).
=item * message signing
=item * message serialization and parsing.
=item * 2-legged requests (aka. tokenless requests, aka. consumer requests), see L</"CONSUMER REQUESTS">
=back
Net::OAuth does not provide:
=over
=item * Consumer or Service Provider encapsulation
=item * token/nonce/key storage/management
=back
=head1 DESCRIPTION
=head2 OAUTH MESSAGES
An OAuth message is a set of key-value pairs. The following message types are supported:
Requests
=over
=item * Request Token (Net::OAuth::RequestTokenRequest)
=item * Access Token (Net::OAuth::AccessTokenRequest)
=item * User Authentication (Net::OAuth::UserAuthRequest)
=item * Protected Resource (Net::OAuth::ProtectedResourceRequest)
=item * Consumer Request (Net::OAuth::ConsumerRequest) (2-legged / token-less request)
=back
Responses
=over
=item * Request Token (Net::OAuth::RequestTokenResponse)
=item * Access Token (Net::OAuth:AccessTokenResponse)
=item * User Authentication (Net::OAuth::UserAuthResponse)
( run in 3.518 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )