View on
Mark Overmeer > Net-OAuth2-0.55 > Net::OAuth2::Profile



Annotate this POD


Open  2
View/Report Bugs
Module Version: 0.55   Source   Latest Release: Net-OAuth2-0.63


Net::OAuth2::Profile - OAuth2 access profiles


 Net::OAuth2::Profile is extended by


  See Net::OAuth2::Profile::WebServer 
  and Net::OAuth2::Profile::Password 


Base class for OAuth `profiles'. Currently implemented:




Next to the OPTIONS listed below, it is possible to provide settings for each of the <${commands}> access_token, protected_resource, authorize, and refresh_token. For each command, you can set

  • ${command}_url => URI|STRING

    The absolute uri which needs to be used to be addressed to execute the $command. May be specified as URI object or STRING.

  • ${command}_path => PATH

    As previous, but relative to the site option value.

  • ${command}_method => 'GET'|'POST'

    Which method to use for the call (by default POST).

  • ${command}_param => []

    Additional parameters for the command.

 -Option       --Default
  client_id      <required>
  client_secret  <required>
  grant_type     <required>
  scope          undef
  site           undef
  token_scheme   'auth-header:Bearer'
  user_agent     <created internally>
client_id => STRING
client_secret => STRING
grant_type => STRING
scope => STRING
site => URI
token_scheme => SCHEME

See add_token() for the supported SCHEMEs. Scheme auth-header is probably the only sane default, because that works with any kind of http requests, where the other options have limited or possible disturbing application.

Before [0.53], the default was 'auth-header:OAuth'.

Specify the method to submit authenticated requests to the service. By default, add the access token as a header, such as: "Authorization: Bearer TOKEN". Some services require that the header will be different, i.e. "Authorization: OAuth TOKEN", for which case specify token_scheme 'auth-header:Oauth'.

To add the access token as a uri-parameter: 'uri-query:oauth_token' (in this case, the parameter name will be oauth_token) Merge the access token inside a form body via 'form-body:oauth_token'

user_agent => LWP::UserAgent object





$obj->request(REQUEST, [MORE])

Send the REQUEST (a HTTP::Request object) to the server, calling LWP::UserAgent method request(). This method will NOT add security token information to the message.

$obj->request_auth(TOKEN, (REQUEST | (METHOD, URI, [HEADER, CONTENT])))

Send an authorized request: the TOKEN information gets included in the request object. Returns the answer (HTTP::Response).


  my $auth  = Net::OAuth2::Profile::WebServer->new(...);
  my $token = $auth->get_access_token($code, ...);

  # possible...
  my $resp  = $auth->request_auth($token, GET => $uri, $header, $content);
  my $resp  = $auth->request_auth($token, $request);

  # nicer (?)
  my $resp  = $token->get($uri, $header, $content);
  my $resp  = $token->request($request);


$obj->add_token(REQUEST, TOKEN, SCHEME)

Merge information from the TOKEN into the REQUEST following the the bearer token SCHEME. Supported schemes:

  • auth-header or auth-header:REALM

    Adds an Authorization header to requests. The default REALM is OAuth, but Bearer and OAuth2 may work as well.

  • uri-query or uri-query:FIELD

    Adds the token to the query parameter list. The default FIELD name used is oauth_token.

  • form-body or form-body:FIELD

    Adds the token to the www-form-urlencoded body of the request. The default FIELD name used is oauth_token.

$obj->build_request(METHOD, URI, PARAMS)

Returns a HTTP::Request object. PARAMS is an HASH or an ARRAY-of-PAIRS of query parameters.

$obj->params_from_response(RESPONSE, REASON)

Decode information from the RESPONSE by the server (an HTTP::Response object). The REASON for this answer is used in error messages.

$obj->site_url((URI|PATH), PARAMS)

Construct a URL to address the site. When a full URI is passed, it appends the PARAMS as query parameters. When a PATH is provided, it is relative to new(site).


This module is part of Net-OAuth2 distribution version 0.55, built on April 02, 2013. Website:


Copyrights 2013 on the perl code and the related documentation by [Mark Overmeer] for SURFnet bv, The Netherlands. For other contributors see Changes.

Copyrights 2011-12 by Keith Grennan.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See

syntax highlighting: