logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Podesite autentifikaciju zasnovanu na pristupnom tokenu / OAuth-u

21/05/2025, by Ivan

OAuth (Open Authorization) je otvoreni standard za autentikaciju i autorizaciju na bazi tokena koji se može koristiti za omogućavanje single sign-on (SSO) pristupa. OAuth omogućava da određene informacije o nalogu krajnjeg korisnika koriste servisi trećih strana, kao što je Facebook, bez izlaganja korisničke lozinke. Deluje kao posrednik u ime krajnjeg korisnika, pružajući servisu pristupni token koji ovlašćuje deljenje određenih podataka naloga.

Ova metoda autentikacije za Drupal API koristi OAuth 2.0 protokol za dobijanje sigurnosnog pristupnog tokena. Taj token se koristi za autentikaciju pristupa vašim Drupal API-jevima. OAuth metod pruža visoko enkriptovan i siguran pristupni token, osiguravajući da su vaši Drupal API-jevi dobro zaštićeni. Smatra se jednom od najsigurnijih metoda za sprečavanje neautorizovanog pristupa vašim Drupal REST ili JSONAPI endpoint-ovima. Ovaj modul je kompatibilan sa Drupal 7, Drupal 8, Drupal 9, Drupal 10 i Drupal 11.

 Preuzmi  

Video vodič za podešavanje:

 Drupal REST API OAuth/Access Token Authentication Youtube Video

U OAuth 2.0 učestvuju sledeće tri strane:

  • Korisnik poseduje podatke kojima se pristupa preko API-ja i želi da aplikacija ima pristup tim podacima.
  • Aplikacija želi da pristupi podacima putem API-ja u ime korisnika.
  • API endpoint kontroliše i omogućava pristup korisničkim podacima.

API će omogućiti pristup samo kada primi validan pristupni token od aplikacije. Način na koji aplikacija dobija token zavisi od korišćene OAuth šeme.

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 u sekciji Extend (/admin/modules) na vašem Drupal sajtu:
    • JSON: API
    • REST UI
    • RESTful Web Services
    • Serialization

    Enable modules

Koraci za podešavanje OAuth/Access Token autentikacije za API:

  • Radi boljeg razumevanja, koristićemo primer dodavanja OAuth/Access Token autentikacije za API koji vraća korisničke podatke u Drupalu.
  • Napomena: Drupal API za dobijanje informacija o korisniku koristi se za dobijanje korisničkih podataka.

Omogućite API i dodelite metode i operacije na sledeći način:

  • Prvi korak je omogućavanje API-ja i dodeljivanje metoda i operacija dozvoljenih na tom API-ju. Ovo možete uraditi koristeći REST UI modul ili izmenom konfiguracije.
  • Da biste omogućili API preko REST UI modula, kliknite na dugme Configure kod REST UI modula (kao što je prikazano ispod)

    REST UI

  • U ovom primeru, omogućavamo /user/{user} API koji se nalazi pod Content sekcijom. Omogućite ovaj API klikom na Enable opciju ispred njega.

    REST API

  • Sada, pošto želimo da preuzmemo podatke o korisniku, 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.

    REST API

Podešavanje OAuth/Access Token autentikacije za API:

  • U ovom koraku ćemo postaviti OAuth/Access Token kao metodu API autentikacije.
    Da biste to uradili, idite na tab API Authentication u REST API Authentication modulu (/admin/config/people/rest_api_authentication/auth_settings)
    • Označite Enable Authentication i kliknite na dugme Save Settings.
    • Ispod dugmeta Save Settings izaberite radio dugme OAuth/Access Token.
    • Zatim kliknite na dugme Generate a new Client ID & Secret.
  • Snimite Client ID i Secret jer će vam biti potrebni prilikom autentikacije Get User Info API-ja.

    Generate a new client ID

Dodelite Drupal ulogama dozvolu za pregled korisničkih informacija:

  • Ako je potrebno, možete i ne-admin Drupal ulogama dodeliti dozvolu za pregled korisničkih informacija. To možete uraditi dodeljivanjem Drupal uloga dozvoli View User Information u sekciji dozvola (/admin/people/permissions) vašeg Drupal sajta.

    REST API

To je to!!!

Sada pokušajte da preuzmete korisničke informacije putem API poziva koristeći OAuth/Access Token za autentikaciju.

Primeri:

  • Prvo moramo napraviti API poziv da bismo dobili access token. Taj token ćemo koristiti za autentifikaciju Drupal API-ja za preuzimanje korisničkih informacija.
  • miniOrange API Authentication modul podržava 2 tipa grant-a koje možete koristiti za dobijanje access tokena:

Password grant:

  • Kod Password grant tipa, access token možemo dobiti slanjem POST zahteva koji sadrži Drupal korisničko ime i lozinku zajedno sa Client ID-jem izdatim od REST API Authentication modula.

    Zahtev: POST <drupal_base_url>/rest_api/access_token                   

    Telo:

    grant_type  = password

    username   = <drupal_korisničko_ime>

    password   = <drupal_lozinka>

    client_id     = <client_id>

    CURL primer zahteva-

    curl --location --request POST '<your_drupal_base_url>/rest_api/access_token' \

     --header 'Accept: application/json' \

     --header 'Content-Type: application/x-www-form-urlencoded' \

    --data-urlencode 'grant_type=password' \

     --data-urlencode 'client_id= <drupal_client_id>' \

     --data-urlencode 'username=<drupal_korisničko_ime>' \

    --data-urlencode 'password=<drupal_lozinka>'

  • Možete pogledati i sliku Postman zahteva ispod:

    Postman

Client Credentials grant:

  • Kod Client Credentials grant tipa, access token dobijamo slanjem POST zahteva sa Client ID-jem i Client Secret-om izdatim od API Authentication modula, zajedno sa korisničkim imenom Drupal korisnika.

    Zahtev: POST <drupal_base_url>/rest_api/access_token

    Telo:

    grant_type = client_credentials

    client_id = <client_id>

    client_secret = <client_secret>

    username = <drupal_korisničko_ime>

    CURL primer zahteva-

    curl --location --request POST '<drupal_base_url>/rest_api/access_token' \

    --header 'Accept: application/json' \

    --header 'Content-Type: application/x-www-form-urlencoded' \

    --data-urlencode 'grant_type=client_credentials' \

    --data-urlencode 'client_id=<Client_ID>' \

    --data-urlencode 'username=<drupal_korisničko_ime>' \

    --data-urlencode 'client_secret=<Client_secret>'

  • Možete pogledati i sliku Postman zahteva za dobijanje access tokena iz Drupala korišćenjem Client Credentials grant tipa.

    api response

  • Uspešan odgovor vraća Access Token zajedno sa rokom važenja i tipom tokena (pogledajte sliku ispod)

REST API

Greške u odgovoru:

Greška Opis
INVALID_CREDENTIALS

Ovu grešku ćete dobiti kada su korisničko ime ili lozinka netačni.

Primer:
{
  "status": "error",
  "error": "INVALID_CREDENTIALS",
  "error_description": "Invalid username or password."
}

INVALID_CLIENT_ID

Ovu grešku ćete dobiti kada pošaljete netačan client ID.

Primer:
{
  "status": "error",
  "error": "INVALID_CLIENT_ID",
  "error_description": "Invalid Client ID."
}

INVALID_CLIENT_SECRET

Ovu grešku ćete dobiti kada pošaljete netačan client secret.

Primer:
{
  "status": "error",
  "error": "INVALID_CLIENT_SECRET",
  "error_description": "Invalid Client Secret."
}

MISSING_USERNAME

Ovu grešku ćete dobiti kada niste prosledili neki od obaveznih parametara u zahtevu.

Primer:
{
  "status": "error",
  "error": "MISSING_USERNAME",
  "error_description": "The username is missing from the request"
}

Tekst preuzet sa Drupal Documentation.