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

WebService::DS::SOP::Auth::V1_1 - SOP version 1.1 authentication module

SYNOPSIS

    use WebService::DS::SOP::Auth::V1_1;

To create an instance:

    my $auth = WebService::DS::SOP::Auth::V1_1->new({
        app_id => '1',
        app_secret => 'hogehoge',
    });

When making a GET request to API:

    my $req = $auth->create_request(
        GET => 'https://<API_HOST>/path/to/endpoint' => {
            hoge => 'hoge',
            fuga => 'fuga',
        },
    );

    my $res = LWP::UserAgent->new->request($req);

When making a POST request with JSON data to API:

    my $req = $auth->create_request(
        POST_JSON => 'http://<API_HOST>/path/to/endpoint' => {
            hoge => 'hoge',
            fuga => 'fuga',
        },
    );

    my $res = LWP::UserAgent->new->request($req);

When embedding JavaScript URL in page:

    <script src="<: $req.uri.as_string :>"></script>

DESCRIPTION

WebService::DS::SOP::Auth::V1_1 is an authentication module for SOP version 1.1 by Research Panel Asia, Inc.

METHODS

new( \%options ) returns WebService::DS::SOP::Auth::V1_1

Creates a new instance.

Possible options:

app_id

(Required) Your app_id.

app_secret

(Required) Your app_secret.

time

(Optional) POSIX time.

app_id() returns Int

Returns app_id configured to instance.

app_secret() returns Str

Returns app_secret configured to instance.

time returns Int

Returns time configured to instance.

create_request( Str $type, Any $uri, Hash $params ) returns HTTP::Request

Returns a new HTTP::Request object for API request while adding app_id to parameters by default.

$type can be one of followings:

GET

For HTTP GET request to SOP endpoint with signature in query string as parameter sig.

POST

For HTTP POST request to SOP endpoint with signature in query string as parameter sig of request content type application/x-www-form-urlencoded.

POST_JSON

For HTTP POST request to SOP endpoint with signature as request header X-Sop-Sig of request content type application/json.

PUT

For HTTP PUT request to SOP endpoint with signature in query string as parameter sig of request content type application/x-www-form-urlencoded.

PUT_JSON

For HTTP PUT request to SOP endpoint with signature as request header X-Sop-Sig of request content type application/json.

DELETE

For HTTP DELETE request to SOP endpoint with signature in query string as parameter sig.

verify_signature( Str $sig, Hash $params ) return Int

Verifies and returns if request signature is valid.

SEE ALSO

WebService::DS::SOP::Auth::V1_1::Request::DELETE, WebService::DS::SOP::Auth::V1_1::Request::GET, WebService::DS::SOP::Auth::V1_1::Request::POST, WebService::DS::SOP::Auth::V1_1::Request::POST_JSON, WebService::DS::SOP::Auth::V1_1::Request::PUT, WebService::DS::SOP::Auth::V1_1::Request::PUT_JSON, WebService::DS::SOP::Auth::V1_1::Util

LICENSE

Copyright (C) dataSpring, Inc. Copyright (C) Research Panel Asia, Inc.

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

AUTHOR

yowcow <yoko.oyama [ at ] d8aspring.com>