File Coverage

blib/lib/Net/OAuth2/AuthorizationServer.pm
Criterion Covered Total %
statement 32 32 100.0
branch n/a
condition n/a
subroutine 12 12 100.0
pod 4 4 100.0
total 48 48 100.0


line stmt bran cond sub pod time code
1             package Net::OAuth2::AuthorizationServer;
2              
3             =head1 NAME
4              
5             Net::OAuth2::AuthorizationServer - Easier implementation of an OAuth2
6             Authorization Server
7              
8             =for html
9             Build Status
10             Coverage Status
11              
12             =head1 VERSION
13              
14             0.26
15              
16             =head1 SYNOPSIS
17              
18             my $Server = Net::OAuth2::AuthorizationServer->new;
19              
20             my $Grant = $Server->$grant_type(
21             ...
22             );
23              
24             =head1 DESCRIPTION
25              
26             This module is the gateway to the various OAuth2 grant flows, as documented
27             at L. Each module implements a specific
28             grant flow and is designed to "just work" with minimal detail and effort.
29              
30             Please see L for more information
31             on how to use this module and the various grant types. You should use the manual
32             in conjunction with the grant type module you are using to understand how to
33             override the defaults if the "just work" mode isn't good enough for you.
34              
35             =cut
36              
37 1     1   855 use strict;
  1         3  
  1         28  
38 1     1   6 use warnings;
  1         2  
  1         26  
39              
40 1     1   613 use Moo;
  1         11788  
  1         4  
41 1     1   2112 use Types::Standard qw/ :all /;
  1         81196  
  1         12  
42              
43 1     1   48835 use Net::OAuth2::AuthorizationServer::AuthorizationCodeGrant;
  1         35  
  1         55  
44 1     1   535 use Net::OAuth2::AuthorizationServer::ImplicitGrant;
  1         29  
  1         42  
45 1     1   662 use Net::OAuth2::AuthorizationServer::PasswordGrant;
  1         27  
  1         36  
46 1     1   549 use Net::OAuth2::AuthorizationServer::ClientCredentialsGrant;
  1         22  
  1         183  
47              
48             our $VERSION = '0.26';
49              
50             =head1 GRANT TYPES
51              
52             =head2 auth_code_grant
53              
54             OAuth Authorisation Code Grant as document at L.
55              
56             See L.
57              
58             =cut
59              
60             sub auth_code_grant {
61 1     1 1 1370 my ( $self, @args ) = @_;
62 1         10 return Net::OAuth2::AuthorizationServer::AuthorizationCodeGrant->new( @args );
63             }
64              
65             =head2 implicit_grant
66              
67             OAuth Implicit Grant as document at L.
68              
69             See L.
70              
71             =cut
72              
73             sub implicit_grant {
74 1     1 1 5 my ( $self, @args ) = @_;
75 1         20 return Net::OAuth2::AuthorizationServer::ImplicitGrant->new( @args );
76             }
77              
78             =head2 password_grant
79              
80             OAuth Resource Owner Password Grant as document at L.
81              
82             See L.
83              
84             =cut
85              
86             sub password_grant {
87 1     1 1 5 my ( $self, @args ) = @_;
88 1         8 return Net::OAuth2::AuthorizationServer::PasswordGrant->new( @args );
89             }
90              
91             =head2 client_credentials_grant
92              
93             OAuth Client Credentials Grant as document at L.
94              
95             See L.
96              
97             =cut
98              
99             sub client_credentials_grant {
100 1     1 1 3 my ( $self, @args ) = @_;
101 1         29 return Net::OAuth2::AuthorizationServer::ClientCredentialsGrant->new( @args );
102             }
103              
104             =head1 SEE ALSO
105              
106             L - A Mojolicious plugin using this module
107              
108             L - encode/decode JWTs
109              
110             =head1 AUTHOR & CONTRIBUTORS
111              
112             Lee Johnson - C
113              
114             With contributions from:
115              
116             Martin Renvoize - C
117              
118             Pierre VIGIER - C
119              
120             Ian Sillitoe - L
121              
122             Mirko Tietgen - L
123              
124             Dylan William Hardison - L
125              
126             =head1 LICENSE
127              
128             This library is free software; you can redistribute it and/or modify it under
129             the same terms as Perl itself. If you would like to contribute documentation
130             or file a bug report then please raise an issue / pull request:
131              
132             https://github.com/Humanstate/net-oauth2-authorizationserver
133              
134             =cut
135              
136             __PACKAGE__->meta->make_immutable;