Drupal salvează parola hashed în baza de date și este o criptare unidirecțională, ceea ce înseamnă că nu puteți obține parola originală de la ea, în timpul procesului de autentificare, drupal codifică parola introdusă de către utilizator și verifică dacă trecerea codificată este egală cu cea din baza de date și când este îndeplinită această condiție, într-un proiect monolitic (nedecuplat) creează un cookie cu informații despre utilizator și îl trimite înapoi în browser care va fi stocat și utilizat pentru utilizări viitoare.
Dar atunci când dezvoltați o abordare decuplată, cum ar fi utilizarea GraphQL sau JsonAPI sau API-ul Rest, nu puteți utiliza întotdeauna cookie-uri, deoarece aplicația frontală ar putea să nu-l accepte (cum ar fi o aplicație mobilă Android sau ...), așa că în acest caz este mai bine să utilizați Token-uri pentru autentificare, există câteva module, dintre care unul dintre cele mai populare este OAuth simplu (OAuth2) și OpenID Connect (STABIL ȘI UTILIZAT pe scară largă)
după configurarea acestui modul (instalarea utilizând compozitorul, crearea cheii private și publice și introducerea consumatorilor) puteți obține pur și simplu un simbol făcând o solicitare Post la:
{SiteName}/oauth/token
iar în corp care ar trebui să fie de tip multipart/form-data
(aplicația/json nu este acceptată) puteți avea:
grant_type = parola
client_id = ID-UL DE CONSUMATOR PE CARE PUTEȚI CONSTRUIRE PRIN INTERFACEȚIA DE UTILIZARE
client_secret = PAROLA CONSUMATOR (DACA AI SETAT)
username = USERNAME
parola = PAROLA
domeniul de aplicare = ROLURI PE CARE VREI LE AVEA UTILIZATORUL CARE NU ESTE DEFINIT DE CONSUMATOR (NU VA AFECTA DACĂ UTILIZATORUL NU ARE ACEL ROL, DECI NU SE PREOCUPĂ DE SECURITATE)
și asta este tot, veți primi un token de acces și de reîmprospătare la răspuns. care apoi poate fi folosit în cererile viitoare care apelează GraphQL sau orice alte servicii REST.
O notă importantă despre acest modul este despre utilizarea Scope, și anume atunci când introduceți un client, puteți aloca unul sau mai multe domenii acelui client și atunci când un utilizator se conectează prin acel client va avea toate rolurile atribuite acelui client.