Autenticazione - Auth API
L'accesso alle API di MARTA viene gestito con un sistema di autenticazione a doppio livello:
1. l'autenticazione alla chiamata all'endpoint POST /auth avviene tramite api-key rilasciata da MARTA da inserire nell'header della query;
2. nella risposta alla chiamata all'endpoint POST /auth viene consegnato un JWT (JSON Web Token) firmato e validato da includere nell'header delle query ai successivi endpoint interessati.
Per ottenere un token di sessione valido è necessario quindi effettuare una chiamata all'endpoint POST /auth.
Richiesta di Accesso da Backoffice
Per autenticazione con scope backoffice, oltre all'inserimento dell'api-key nell'header, inserire nella request i parametri:
• username (username dell’operatore che richiede l’accesso),
• password (password associata all’operatore che richiede l’accesso),
• campaignid (l'id della campagna del tuo brand relativo all’ambiente di produzione | vuoto se l’operatore ha un accesso Rete),
• devicetype (tipo di device da cui il cliente tenta di fare l’accesso 1=Browser 2=Android device 3=iOS Device)
• scope (tipo di accesso richiesto, in questo caso ‘backoffice’).
> Ecco un esempio di una request all’endpoint POST /auth per effettuare un’autenticazione backoffice <
curl -X POST https://martaapidemo.keyx.it/auth \
--header 'Content-Type: application/json' \
--header 'x-api-key: ••••••' \
{
"username":"opApiDoc",
"password":"Password123!",
"campaignid ": "16273",
"devicetype":"1"
"scope": "backoffice"
}'
Richiesta di Accesso da Terminale
Per autenticazione con scope terminal o terminal-backoffice, oltre all'inserimento dell'api-key nell'header, inserire nella request i parametri:
• username (username dell’operatore che richiede l’accesso),
• password (password associata all’operatore che richiede l’accesso),
• serialnumber (numero seriale legato al terminale associato all’operatore che richiede l’accesso),
• campaignid (l'id della campagna del tuo brand relativo all’ambiente di produzione),
• devicetype (tipo di device da cui il cliente tenta di fare l’accesso 1=Browser 2=Android device 3=iOS Device)
• scope (tipo di accesso richiesto, in questo caso ‘terminal’).
> Ecco un esempio di una request all’endpoint POST /auth per effettuare un’autenticazione terminal <
curl -X POST https://martaapidemo.keyx.it/auth \
--header 'Content-Type: application/json' \
--header 'x-api-key: ••••••' \
{
"username":"opApiDoc",
"password":"Password123!",
"campaignid ": "16273",
"devicetype":"1"
"scope": "terminal-backoffice"
}'
Richiesta di Accesso Customer
> Richiesta con scope customersynchro
Per autenticazione con scope customersynchro, oltre all'inserimento dell'api-key nell'header, inserire nella request i parametri:
(accesso da utilizzare se le azioni da eseguire sono prima o in fase di registrazione del cliente, quindi prima del login)
• username (campo da non inserire),
• password (campo da non inserire),
• campaignid (l'id della campagna del tuo brand relativo all’ambiente di produzione),
• devicetype (tipo di device da cui il cliente tenta di fare l’accesso 1=Browser, 2=Android device, 3=iOS Device)
• scope (tipo di accesso richiesto, in questo caso ‘customersynchro’).
> Ecco un esempio di una request all’endpoint POST /auth per effettuare un’autenticazione customersynchro <
curl -X POST https://martaapidemo.keyx.it/auth \
--header 'Content-Type: application/json' \
--header 'x-api-key: ••••••' \
{
"campaignid ": "16273",
"devicetype":"2",
"scope": "customersynchro"
}'
> Richiesta con scope customer
Per autenticazione con scope customer, oltre all'inserimento dell'api-key nell'header, inserire nella request i parametri:
• username (username dell’account del customer),
• password (password dell’account del customer),
• campaignid (l'id della campagna del tuo brand relativo all’ambiente di produzione),
• devicetype (tipo di device da cui il cliente tenta di fare l’accesso 1=Browser 2=Android device 3=iOS Device)
• scope (tipo di accesso richiesto, in questo caso ‘customer’).
> Ecco un esempio di una request all’endpoint POST /auth per effettuare un’autenticazione customer <
curl -X POST https://martaapidemo.keyx.it/auth \
--header 'Content-Type: application/json' \
--header 'x-api-key: ••••••' \
{
"username":"+393728273349",
"password":"Password123!",
"campaignid ": "16273",
"devicetype":"2",
"scope": "customer"
}'
Se l'esito della chiamata all'endpoint POST /auth è stato http 200, si ottiene in risposta un oggetto JSON dove saranno presenti i campi "token" e "refreshtoken".
Per maggiori dettagli ed errori, vedere l'endpoint POST /Auth.