Configura l’Autenticazione di Base con il modulo REST API Authentication
L’Autenticazione di Base è un metodo di autenticazione molto semplice e diretto. Il client invia richieste HTTP con un’intestazione Authorization che contiene un nome utente e una password del tuo sito Drupal codificati in base64.
Nell’Autenticazione di Base, il modulo miniOrange API authentication autenticherà prima l’utente rispetto al suo nome utente e password di Drupal. Se l’utente viene autenticato, solo allora sarà possibile eseguire quell’operazione. Questo modulo è compatibile con Drupal 7, Drupal 8, Drupal 9, Drupal 10 e Drupal 11.
Video di Configurazione:
Prerequisiti: Download e Installazione:
- Scarica e installa il modulo Drupal REST & JSON API Authentication.
- REST UI: Questo modulo ti fornisce un’interfaccia utente per configurare il modulo REST.
- Abilita i seguenti moduli Web Services nella sezione Estendi (/admin/modules) del tuo sito Drupal:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Passaggi per configurare il metodo di Autenticazione di Base in Drupal:
- Per una migliore comprensione, prenderemo come esempio l’aggiunta dell’autenticazione di Base per ottenere un nodo in Drupal utilizzando la REST API.
- Nota bene che l’API /node/{node} di Drupal viene utilizzata per recuperare informazioni su un nodo di Drupal.
Abilita l’API, assegna metodi e operazioni come segue:
- Il primo passo è abilitare l’API e assegnare anche i metodi e le operazioni consentite su quella particolare API. Questo può essere fatto utilizzando il modulo REST UI oppure modificando direttamente la configurazione.
- Per abilitare l’API utilizzando il modulo REST UI, fai clic sul pulsante Configura del modulo REST UI (come mostrato sotto).
- Considerando il nostro esempio, vogliamo abilitare l’API /node/{node} presente nella sezione Contenuto. Abilita questa API utilizzando l’opzione Enable di fronte ad essa.
- Ora, poiché il nostro obiettivo è recuperare le informazioni del nodo, seleziona le seguenti configurazioni:
- Metodo: GET
- Formato: json
- Provider di autenticazione: rest_api_authentication.
- Questo consentirà al modulo miniOrange REST API Authentication di autenticare la tua API. Fai clic sul pulsante Salva configurazione per continuare.
Passaggi per abilitare l’Autenticazione di Base:
- In questo passaggio, configureremo l’Autenticazione di Base come metodo di API Authentication. Per farlo, vai alla scheda API Authentication del modulo REST API Authentication (/admin/config/people/rest_api_authentication/auth_settings)
- Seleziona la casella di controllo Enable Authentication e fai clic su Salva impostazioni.
- Sotto il pulsante Salva impostazioni seleziona Basic Authentication e fai clic sul pulsante select method.
Fatto!!!
Ora proviamo a recuperare le informazioni di un nodo tramite una chiamata API utilizzando l’autenticazione di Base.
Esempio:
- Per ottenere le informazioni di un nodo in Drupal, devi effettuare una richiesta GET insieme al nome utente e alla password Drupal dell’utente. Il valore di nome utente e password deve essere in formato base64encoded. Puoi fare riferimento al formato seguente per effettuare la chiamata.
Request: GET <your_drupal_base_url> /node/{node}?_format=json
Header:
Authorization: Basic base64encoded <username:password>
Accept: application/json
Content-Type: application/jsonFormato richiesta CURL-
curl --location --request GET 'drupal_base_url/node/1?_format=json' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64encoded <username:password'>
- Puoi anche fare riferimento all’immagine della richiesta Postman riportata sotto:
- Una risposta avvenuta con successo restituisce le informazioni del nodo che hai creato. (vedi immagine sotto)
- Se ricevi un errore nella risposta puoi fare riferimento alla tabella sottostante per la descrizione dell’errore e le possibili soluzioni.
Errore |
Descrizione |
MISSING_AUTHORIZATION_HEADER |
Riceverai questo errore ogni volta che non invii un’intestazione Authorization nella richiesta API o se è stata rimossa dal tuo server per qualche motivo. Esempio: |
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Riceverai questo errore quando invii l’intestazione Authorization ma non in un formato valido. |
USER_NAME_MISSING |
Riceverai questo errore ogni volta che il modulo non riesce a trovare il nome utente nella chiamata API. Esempio: |
INVALID_CREDENTIALS |
Riceverai questo errore quando il nome utente o la password non sono corretti. Esempio: |