Sari la conținut
← Autentificare și autorizare în Laravel
Progres curs 0 / 6 lecții (0%)

Modelul de securitate

Autentificarea („cine ești") și autorizarea („ce ai voie") sunt lucruri diferite, tratate în locuri diferite. Confuzia dintre ele produce fie găuri de securitate, fie cod încâlcit. Lecția asta clarifică modelul mental înainte de implementare.

Autentificare vs. autorizare

  • Autentificare: verifici identitatea. Login, sesiune sau token, „ești logat?".
  • Autorizare: verifici permisiunea. „Utilizatorul ăsta poate edita articolul ăsta?".
  • Ordinea: întâi autentifici (401 dacă eșuează), apoi autorizezi (403 dacă eșuează).

Unde stă fiecare în Laravel

  • Autentificare: middleware `auth`, guard-uri, `auth()->user()`.
  • Autorizare: Gates și Policies, `$this->authorize()`, `@can`, `->can()`.
  • Middleware `guest`: invers de auth (doar pentru neautentificați — pagini de login).

Straturi de apărare

Securitatea nu e un singur zid. Verifici la rută (middleware), la controller (authorize), și ascunzi în interfață (@can). Ascunderea în Blade e pentru experiență, NU pentru securitate — un utilizator poate oricând trimite cererea direct.

Ce vom construi

Un sistem complet: înregistrare cu verificare de email, login/logout, resetare parolă, roluri (admin/editor/user), permisiuni pe resurse (autorul își editează articolele), și acces la fișiere private.

Exercițiu

Pentru o aplicație la alegere, listează: ce rute necesită doar autentificare, ce rute necesită un rol anume, ce acțiuni necesită verificare pe resursă (owner). Marchează pentru fiecare codul de eroare corect (401 vs 403).

Greșeli frecvente

  • Folosești 403 când ar trebui 401 (sau invers).
  • Verifici permisiuni doar în Blade și crezi că e destul.
  • Amesteci logica de „ești logat" cu „ai voie" în același if.
  • Autorizezi înainte de a autentifica.

De reținut

  • Autentificare = cine ești (401); autorizare = ce poți (403).
  • auth middleware pentru prima, Gates/Policies pentru a doua.
  • Verifici în mai multe straturi; Blade e doar pentru UX.
  • Întâi autentifici, apoi autorizezi.

Pe scurt

Ține autentificarea și autorizarea separate, conceptual și în cod. Fiecare are locul ei, codul ei de eroare și stratul ei.

Folosim cookie-uri esențiale pentru funcționarea site-ului și, cu acordul tău, cookie-uri de analiză și publicitate. Partenerii noștri, inclusiv Google, pot folosi cookie-uri pentru a afișa reclame relevante. Detalii în Politica de cookie-uri.