The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Mojo::UserAgent::Signature::Base - Signature base class

SYNOPSIS

  package Mojo::UserAgent::Signature::SomeService;
  use Mojo::Base 'Mojo::UserAgent::Signature::Base;

  sub sign_tx {
    my ($self, $tx, $args) = @_;

    # Magic here! :)
  }

DESCRIPTION

Mojo::UserAgent::Signature::Base is an abstract base class for Mojo::UserAgent signatures.

METHODS

Mojo::UserAgent::Signature::Base inherits all methods from Mojo::UserAgent::Signature and implements the following new ones.

apply_signature

  $signed_tx = $signature->apply_signature($tx, $args);

Applies the signature produced by "sign_tx" to Mojo::UserAgent transaction. Also adds a header to the transaction, X-Mojo-Signature: SomeService, to indicate that this transaction has been signed -- this prevents the automatic signature handling from applying the signature a second time, after the generator.

init

  $signature = $signature->init($ua);

Adds a transactor generator named sign to the supplied $ua instance for applying a signature to a transaction. Useful for overriding the signature details in the "signature" instance.

Another generator can follow the use of the sign generator.

  $ua->get($url => sign => {%args});

sign_tx

  $signed_tx = $signature->sign_tx($tx, {%args});

This method will be called by "apply_signature", either automatically when the transaction is built, or explicitly via the transaction generator. Meant to be overloaded in a subclass.

COPYRIGHT AND LICENSE

Copyright (C) 2020, Stefan Adams.

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.

SEE ALSO

https://github.com/stefanadams/mojo-useragent-role-signature, Mojo::UserAgent.