🔐
Varnost

Avtentikacija in RBAC

Skrbniške nastavitve

Uporabniška avtentikacija poslovnega razreda z nadzorom dostopa na podlagi vlog

Pregled

Celovit sistem avtentikacije s podatkovnim RBAC, ki podpira vloge superadmin, admin, moderator in uporabnik. Vključuje varno zgoščevanje gesel, upravljanje sej in podroben nadzor dovoljenj.

Oblikovalski premisleki

UX vzorci in opombe vizualnega oblikovanja za to funkcionalnost:

  • Prijavni obrazci naj bodo prijazni, ne zastrašujoči
  • Značke vlog uporabljajo psihologijo barv: rdeča za administratorsko moč, modra za zaupanje
  • Permission denied states need empathy - explain what's restricted, offer alternatives
  • Opozorila o poteku seje preprečujejo frustrirajočo izgubo podatkov

Ključne prednosti

Kaj naredi to funkcionalnost izjemno:

  • RBAC brez konfiguracije že v osnovi
  • Hierarhične vloge (superadmin podeduje vse)
  • Upravljano iz baze podatkov - spremembe kode niso potrebne
  • Yii2 izvorna authManager integracija
Tehnična opomba

Uses Yii2's DbManager for RBAC. Roles stored in auth_item (type=1), permissions (type=2). Check permissions with Yii::$app->user->can('permissionName').

Pomožni razredi
AdminHelperAuthAssignment
Modeli
UserLoginFormSignupForm
Tabele baze podatkov
userauth_itemauth_item_childauth_assignmentauth_rule

Konfiguracija

Legenda konfiguracijskih povezav
Baza podatkov prepiše params.php🔗 Nastavitev povezana z bazo podatkov📋 Baza podatkov hrani samo vrednost
params.php konfiguracija

Konfiguracijska pot: params['auth']

params['auth']['password']['minLength'] => 8params['auth']['password']['hashCost'] => 13params['auth']['session']['timeout'] => 7200params['auth']['rememberMe']['duration'] => 2592000params['auth']['emailVerification']['required'] => false
Nastavitve baze podatkov (tabela system_setting)
KljučTipOpisRelacija
auth_password_min_lengthnumberMinimum password length
auth_password_hash_costnumberBcrypt hash cost (10-14)
auth_session_timeoutnumberSession timeout in seconds
auth_remember_me_durationnumberRemember me duration
auth_email_verification_requiredbooleanRequire email verification