NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Auth for Laravel

Notifikácie

Všetky notifikácie dedia od AuthenticationNotification a posielajú sa e-mailom. Pre guard ich nahradíte cez notifications.classes.<type> (podtrieda AuthenticationNotification), alebo nastavením na null vypnete:

TypTriedaPríjemca
magic_linkMagicLinkNotificationúčet
email_otpEmailOtpNotificationúčet (kódy na prihlásenie aj opätovné overenie)
verify_emailVerifyEmailNotificationúčet
reset_passwordResetPasswordNotificationúčet
password_changedPasswordChangedNotificationúčet (zmena, obnova, nastavenie)
email_change_confirmationConfirmEmailChangeNotificationnová adresa
email_change_requestedEmailChangeRequestedNotificationstará adresa
email_changedEmailChangedNotificationstará adresa
account_existsAccountExistsNotificationuž používaná adresa
invitationInvitationNotificationpozvaný (jazyk pozvánky)
new_deviceNewDeviceLoginNotificationúčet
two_factor_enabled / two_factor_disabledTwoFactorEnabledNotification / TwoFactorDisabledNotificationúčet
recovery_code_usedRecoveryCodeUsedNotificationúčet
passkey_added / passkey_removedPasskeyAddedNotification / PasskeyRemovedNotificationúčet
account_lockedAccountLockedNotificationúčet
refresh_token_reuseSuspiciousSessionNotificationúčet (opakované použitie refresh tokenu; rodina relácií bola zrušená)
sign_in_blockedSignInBlockedNotificationúčet (reakcia na riziko deny)
unusual_sign_inUnusualSignInNotificationúčet (reakcia na riziko notify)

Upozornenia na riziko

Reakcie na riziko majú vlastné e-maily. deny pošle SignInBlockedNotification (sign_in_blocked) — nikto sa neprihlásil; notify pošle po dokončení prihlásenia UnusualSignInNotification (unusual_sign_in) — jeho relácia je aktívna. Ani jeden netvrdí, že bola nejaká relácia odhlásená: SuspiciousSessionNotification (refresh_token_reuse) sa už týka len opätovného použitia refresh tokenu, preto upozornenia na riziko upravíte či vypnete cez sign_in_blocked a unusual_sign_in. Oba sa odošlú vždy, keď risk.assessor guardu vráti úroveň s reakciou deny alebo notify (viď Aktivita a riziko). Publikovaná konfigurácia, ktorá je staršia a ich kľúče v notifications.classes nemá, ich posiela tiež; nastavením kľúča na null jeden vypnete:

'guards' => [
    'users' => [
        'model' => App\Models\User::class,
        'risk' => [
            'assessor' => NewDeviceRisk::class,
            'reactions' => ['elevated' => 'notify', 'high' => 'deny'],
        ],
        'notifications' => [
            'classes' => [
                'sign_in_blocked' => App\Notifications\SignInBlocked::class,   // extends AuthenticationNotification
                'unusual_sign_in' => null,                                        // null switches it off
            ],
        ],
    ],
],

Doručovanie

  • after_response (predvolené) — odpoveď pre známy účet nie je merateľne pomalšia než pre neznámy.
  • queue — cez šifrovaný job (ShouldBeEncrypted) na notifications.connection / queue, takže odkaz ani kód nikdy neležia čitateľné vo fronte.
  • sync — priamo, na vývoj.

Odkazy

Odkazy v e-mailoch sa skladajú len z konfigurácie (žiadne presmerovanie od klienta) so zástupnými symbolmi {frontend}, {app}, {guard}, {email} a {token}. Predvolene je tajomstvo vo fragmente URL (#token=…), takže sa nikdy nedostane do logu servera ani do hlavičky Referer — frontend prečíta location.hash a token pošle POST požiadavkou. Mail driver log mimo vývoja nepoužívajte.

'guards' => [
    'users' => [
        'model' => App\Models\User::class,
        'notifications' => [
            'delivery' => 'queue',       // sync|after_response|queue
            'queue' => 'mail',
            'classes' => [
                'magic_link' => App\Notifications\MagicLink::class,   // extends AuthenticationNotification
                'new_device' => null,                                  // null disables it
            ],
            'frontend_url' => 'https://app.example.com',
            'urls' => [
                'magic_link' => '{frontend}/auth/magic-link?guard={guard}#token={token}',
            ],
        ],
    ],
],

Texty a jazyk

Texty sú v authentication::notifications.* a balík ich dodáva v angličtine a slovenčine (en, sk); ostatné jazyky sa vrátia k app.fallback_locale, kým ich nedoplníte do lang/vendor/authentication/<locale>/. Na úpravu či doplnenie textov publikujte preklady. Účty dostávajú e-maily vo svojom jazyku cez preferredLocale():

php artisan vendor:publish --tag=authentication-translations

Riadok o platnosti sa vykresľuje cez trans_choice() podľa zostávajúcich minút, takže má tvary množného čísla (publikovaná úprava bez | funguje naďalej), a :reason pri opätovnom použití refresh tokenu sa vykreslí z notifications.refresh_token_reuse.reasons.* v jazyku e-mailu.

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 kryptomien

Odoslaní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.