Podesite osnovnu autentifikaciju pomoću modula REST API Authentication
Basic Authentication je veoma jednostavna i direktna metoda autentikacije. Klijent šalje HTTP zahteve sa Authorization header-om koji sadrži base64-kodirano korisničko ime i lozinku vašeg Drupal sajta.
U Basic Authentication metodi, miniOrange API authentication modul će prvo autentifikovati korisnika na osnovu njegovog Drupal korisničkog imena i lozinke. Samo ako je korisnik uspešno autentifikovan, biće u mogućnosti da izvrši željenu operaciju. Ovaj modul je kompatibilan sa Drupal 7, Drupal 8, Drupal 9, Drupal 10 i Drupal 11.
Video vodič za podešavanje:
Preduslovi: Preuzimanje i instalacija:
- Preuzmite i instalirajte Drupal REST & JSON API Authentication modul.
- REST UI: Ovaj modul omogućava korisnički interfejs za podešavanje REST modula.
- Omogućite sledeće Web Services module iz sekcije Extend (/admin/modules) vašeg Drupal sajta:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Koraci za podešavanje Basic Authentication metode u Drupalu:
- Radi boljeg razumevanja koristićemo primer dodavanja Basic autentikacije za dobijanje node-a iz Drupala putem REST API-ja.
- Napomena: /node/{node} API Drupala koristi se za dobijanje informacija o nekom node-u.
Omogućite API, dodelite metode i operacije na sledeći način:
- Prvi korak je omogućavanje API-ja i dodeljivanje metoda i operacija koje su dozvoljene na tom API-ju. Ovo možete uraditi pomoću REST UI modula ili izmenom konfiguracije.
- Da biste omogućili API pomoću REST UI modula, kliknite na dugme configure kod REST UI modula (kao što je prikazano ispod)
- U ovom primeru omogućavamo /node/{node} API pod Content sekcijom. Omogućite ovaj API klikom na Enable opciju ispred njega.
- Sada, pošto želimo da dobijemo informacije o node-u, izaberite sledeće konfiguracije:
- Metod: GET
- Format: json
- Provider za autentikaciju: rest_api_authentication
- Ovim omogućavate miniOrange REST API Authentication modulu da autentifikuje vaš API. Kliknite na Save Configuration za nastavak.
Koraci za omogućavanje Basic Authentication:
- U ovom koraku ćemo postaviti Basic Authentication kao API Authentication metodu. Da biste to uradili, idite na tab API Authentication REST API Authentication modula (/admin/config/people/rest_api_authentication/auth_settings)
- Označite Enable Authentication i kliknite na Save iznad Settings.
- Ispod Save Settings izaberite Basic Authentication i kliknite na dugme select method.
To je to!!!
Sada možete pokušati da dobijete node informacije putem API poziva koristeći Basic Authentication.
Primer:
- Za dobijanje node informacija u Drupalu, potrebno je da pošaljete GET zahtev zajedno sa korisničkim imenom i lozinkom korisnika. Vrednosti korisničkog imena i lozinke moraju biti base64 kodirane. Pogledajte format ispod.
Zahtev: GET <your_drupal_base_url>/node/{node}?_format=json
Header:
Authorization: Basic base64encoded <username:password>
Accept: application/json
Content-Type: application/jsonCURL primer zahteva-
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'>
- Možete pogledati i sliku Postman zahteva ispod:
- Uspešan odgovor vraća informacije o node-u koji ste zahtevali. (pogledajte sliku ispod)
- Ako dobijete grešku u odgovoru, pogledajte tabelu ispod za opis greške i moguća rešenja.
Greška |
Opis |
MISSING_AUTHORIZATION_HEADER |
Ovu grešku ćete dobiti kada ne pošaljete Authorization Header u API zahtevu ili ga je server uklonio iz nekog razloga. Primer: |
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Ovu grešku dobijate kada pošaljete Authorization header, ali nije u validnom formatu. |
USER_NAME_MISSING |
Ovu grešku ćete dobiti kada modul ne može da pronađe korisničko ime u API pozivu. Primer: |
INVALID_CREDENTIALS |
Ovu grešku ćete dobiti kada su korisničko ime ili lozinka netačni. Primer: |