NAME

   Web::Solid::Auth - A Perl Sold Web Client

SYNOPSIS

       use Web::Solid::Auth;
       use Web::Solid::Auth::Listener;

       # Create a new authenticator for a pod
       my $auth = Web::Solid::Auth->new(webid => $webid);

       # Or tune a listerner
       my $auth = Web::Solid::Auth->new(
             webid     => $webid ,
             listener => Web::Solid::Auth::Listener->new(
                   scheme => 'https'
                   host   => 'my.server.org'
                   port   => '443' ,
                   path   => '/mycallback'
             )
       );

       # Or, in case you have your own callback server
       my $auth = Web::Solid::Auth->new(
             webid         => $webid,
             redirect_uri => 'https://my.server.org/mycallback'
       );

       # Generate a url for the user to authenticate
       my $auth_url = $auth->make_authorization_request;

       # Listen for the oauth server to return tokens
       # the built-in listener for feedback from the openid provider
       # Check the code of Web::Solid::Auth::Listener how to
       # do this inside your own Plack application
       $auth->listen;

       ####

       # If you already have access_tokens from previous step
       if ($auth->has_access_token) {
           # Fetch the Authentication and DPoP HTTP headers for a
           # request to an authorized resource
           my $headers = $auth->make_authentication_headers($resource_url,$http_method);

           #..do you curl..lwp::agent..or what ever with the headers
       }

DESCRIPTION

   This is a Solid-OIDC implementation of a connection class for the Solid
   server. Use the bin/solid_auth.pl command as a command line
   implementation.

CONFIGURATION

   webid

     The Solid Webid to authenticate.

   cache

     The location of the cache directory with connection parameters.

METHODS

   has_access_token()

     Returns a true value when a cache contains an access token for the
     webid.

   make_clean()

     Clear the cache directory.

   make_authorization_request()

     Return an authorization URL that the use should open to authenticate
     this application.

   make_access_token($code)

     When on the redirect url you get a code from the authentication
     server you can use this method to get an access_token for the code.

   listen()

     Create a small built-in web server to listen for token responses from
     the authentication server.

   get_access_token()

     Return the cached access_token.

SEE ALSO

   solid_auth.pl

CONTRIBUTORS

   Patrick Hochstenbach, patrick.hochstenbach at ugent.be

COPYRIGHT AND LICENSE

   This software is copyright (c) 2021 by Patrick Hochstenbach.

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.