Perl: autenticazione

Esempio di chiamata alla funzione di autenticazione

La chiamata  usa la funzione user_authentication passando

  • la userid e la password di accesso alle API: interface_code e interface_password
  • la userid e la password di un utente Documatica: user@acme.it e user_pass

Per poter eseguire questa funzione occorre utilizzare la password e l'userid fornite da KPNQwest.

Il codice elabora anche la risposta, stampando il token ricevuto in caso di errore o i codici di errore in caso di errore.

use v5.10;
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON::XS qw(decode_json encode_json);

my $SERVER_URL = 'https://docubank.kpnqwest.it/backend/v1.0/public/script/';
my $INTERFACE_CODE     = 'INTERFACE_code';
my $INTERFACE_PASSWORD = 'INTERFACE_pass';
my $USER_LOGIN         = 'user@acme.it';
my $USER_PASSWORD      = 'user_pass';

my $user_agent = LWP::UserAgent->new;

my $user_authentication_msg = {
    'message_type'       => 'USER_AUTHENTICATION',
    'version'            => '1.0',
    'interface_code'     => $INTERFACE_CODE,
    'interface_password' => $INTERFACE_PASSWORD,
    'login'              => $USER_LOGIN,
    'password'           => $USER_PASSWORD
};

my $response = $user_agent->request(
    POST $SERVER_URL,
    'Content_Type' => 'application/json',
    'Content'      => encode_json($user_authentication_msg) );

my $parsed_response = decode_json( $response->decoded_content );

if ( $response->is_success ) {
    print "Token:  $parsed_response->{'token'}\n";
} else {
    given ( $parsed_response->{'status'} ) {
        when ('BAD_INTERFACE_CODE_PASSWORD') {
            # ...
        }
        when ('USER_AUTHENTICATION_FAILURE') {
            # ...
        }
        when ('BACKEND_SERVER_ERROR') {
            # ...
        }
        default {
            die 'Should not arrive in here'
        }
    }
}


Attenzione: le informazioni riportate in questa sezione possono non essere perfettamente allineate con la versione corrente del servizio, in continua evoluzione. Per qualunque informazione specifica, vi preghiamo di contattarci.