Rozšírenie
Každý bod rozšírenia je kontrakt napojený pre guard v konfigurácii alebo globálne v kontajneri:
| Kontrakt | Napojenie | Účel |
|---|---|---|
ResolvesAccessTokenClaims | tokens.claims_resolver | resolve(Account, GuardConfig): AccessTokenClaims — e-mail, oprávnenia, ďalšie claimy. |
CreatesAccounts | registration.creator | create(GuardConfig, NewAccountData): Account — registrácia a prijatie pozvánky. |
ProvidesRegistrationRules | registration.rules | rules(GuardConfig): array — vlastné polia; ku creatoru sa dostanú len tieto kľúče. |
AssessesLoginRisk | risk.assessor | assess(LoginRiskContext): RiskAssessment. |
RendersQrCode | kontajner | otpauthSvg(uri, size): ?string (null nikdy neblokuje nastavenie). |
NegotiatesLocale | kontajner | negotiate(Request, GuardConfig): ?string. |
ChecksBreachedPasswords | kontajner | isBreached(password, GuardConfig): bool. |
FingerprintsDevices | kontajner | fingerprint(SessionContext, GuardConfig): ?string. |
Predvolené implementácie sú v kontajneri naviazané cez bindIf, takže vaše vlastné naviazanie v provideri má prednosť:
// App\Providers\AppServiceProvider::register()
use RoundlyConsulting\Auth\Contracts\ChecksBreachedPasswords;
use RoundlyConsulting\Auth\Contracts\FingerprintsDevices;
$this->app->bind(ChecksBreachedPasswords::class, MyBreachChecker::class);
$this->app->bind(FingerprintsDevices::class, MyDeviceFingerprinter::class);Modely a resources
Všetky štyri modely môžu ukazovať na podtriedy modelov balíka — podtrieda sa potom všade vytvára aj dopytuje. Akákoľvek iná trieda vyhodí InvalidConfigurationException s názvom kľúča; balík sa nikdy potichu nevráti k modelu balíka. JSON resources nie sú final a resources.account nahradí resource pre me v konkrétnom guarde:
// config/authentication.php
'models' => [
'challenge' => LoginChallenge::class,
'one_time_token' => OneTimeToken::class,
'invitation' => App\Models\Invitation::class, // extends RoundlyConsulting\Auth\Models\Invitation
'login_activity' => LoginActivity::class,
],
'guards' => [
'users' => [
'model' => App\Models\User::class,
'resources' => ['account' => App\Http\Resources\CurrentUserResource::class],
],
],Čo sa nerozširuje
Formáty tokenov (jwt, refresh-tokens), ceremoniály dvojfaktora a passkeys aj kryptografické primitíva patria nižším balíkom.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.