logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Authen::SCRAM - Salted Challenge Response Authentication Mechanism (RFC 5802)

Author

       David Golden <dagolden@cpan.org>

Contributor

       David Golden <xdg@xdg.me>

Description

       The modules in this distribution implement the Salted Challenge Response Authentication Mechanism (SCRAM)
       from RFC 5802.

       See Authen::SCRAM::Client and Authen::SCRAM::Server for usage details.

Name

       Authen::SCRAM - Salted Challenge Response Authentication Mechanism (RFC 5802)

Support

Bugs/FeatureRequests
       Please report any bugs or feature requests through the issue tracker at
       <https://github.com/dagolden/Authen-SCRAM/issues>.  You will be notified automatically of any progress on
       your issue.

   SourceCode
       This is open source software.  The code repository is available for public review and contribution under
       the terms of the license.

       <https://github.com/dagolden/Authen-SCRAM>

         git clone https://github.com/dagolden/Authen-SCRAM.git

Synopsis

           use Authen::SCRAM::Client;
           use Authen::SCRAM::Server;
           use Try::Tiny;

           ### CLIENT SIDE ###

           $client = Authen::SCRAM::Client->new(
               username => 'johndoe',
               password => 'trustno1',
           );

           try {
               $client_first = $client->first_msg();

               # send to server and get server-first-message

               $client_final = $client->final_msg( $server_first );

               # send to server and get server-final-message

               $client->validate( $server_final );
           }
           catch {
               die "Authentication failed!"
           };

           ### SERVER SIDE ###

           $server = Authen::SCRAM::Server->new(
               credential_cb => \&get_credentials,
           );

           $username = try {
               # get client-first-message

               $server_first = $server->first_msg( $client_first );

               # send to client and get client-final-message

               $server_final = $server->final_msg( $client_final );

               # send to client

               return $server->authorization_id; # returns valid username
           }
           catch {
               die "Authentication failed!"
           };

Version

       version 0.011

See Also