Inštalácia
Pridajte balík, vygenerujte pár RSA kľúčov pre jwt-for-laravel, spustite inštalátor a migrácie. Service provider sa zaregistruje automaticky:
composer require roundly-consulting/auth-for-laravel
php artisan jwt:generate-keys
php artisan authentication:install
php artisan migrateauthentication:install publikuje konfiguráciu a migrácie balíka spolu s migráciami refresh-tokens-for-laravel, two-factor-for-laravel a passkeys-for-laravel a potom vypíše zapojenie uvedené nižšie. Vaše konfiguračné súbory nikdy neupravuje.
Publish tagy
| Tag | Publikuje |
|---|---|
authentication-config | config/authentication.php |
authentication-migrations | Štyri tabuľky auth_* a stub, ktorý pridá stĺpce účtu a passkey_user_handle do tabuľky predvoleného guardu. |
authentication-translations | lang/vendor/authentication — chybové hlášky, validácia a texty notifikácií. |
Migrácie sa len publikujú — balík ich nikdy nenačítava sám, preto ich pred spustením migrate publikujte (alebo spustite inštalátor).
Zapojenie guardu
Každý guard potrebuje v config/auth.php jwt guard s vlastnou audience a user provider authentication:
// config/auth.php
'guards' => [
'users' => ['driver' => 'jwt', 'provider' => 'users', 'audience' => env('JWT_USERS_AUDIENCE', 'app-users')],
'clients' => ['driver' => 'jwt', 'provider' => 'clients', 'audience' => env('JWT_CLIENTS_AUDIENCE', 'app-clients')],
],
'providers' => [
'users' => ['driver' => 'authentication', 'guard' => 'users'],
'clients' => ['driver' => 'authentication', 'guard' => 'clients'],
],V config/jwt.php nastavte pre každý jwt guard resolver verzie tokenu — bez neho invalidácia nič nezruší:
// config/jwt.php
'guard' => [
'token_version' => \RoundlyConsulting\Auth\Support\TokenVersionResolver::class,
// …
],Príprava modelu
Model guardu implementuje kontrakty funkcií, ktoré guard používa:
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use RoundlyConsulting\Auth\Concerns\HasAuthentication;
use RoundlyConsulting\Auth\Contracts\Account;
use RoundlyConsulting\Passkeys\Concerns\InteractsWithPasskeys;
use RoundlyConsulting\Passkeys\Contracts\HasPasskeys;
use RoundlyConsulting\RefreshTokens\Traits\HasRefreshTokens;
use RoundlyConsulting\TwoFactor\Concerns\HasTwoFactorAuthentication;
use RoundlyConsulting\TwoFactor\Contracts\TwoFactorAuthenticatable;
class User extends Authenticatable implements Account, HasPasskeys, TwoFactorAuthenticatable
{
use HasAuthentication, HasRefreshTokens, HasTwoFactorAuthentication, InteractsWithPasskeys, Notifiable;
protected function casts(): array
{
return [...$this->authenticationCasts(), ...$this->twoFactorCasts(), 'email_verified_at' => 'datetime'];
}
}Publikovaný stub pridá do tabuľky predvoleného guardu autentifikačné stĺpce a passkey user handle (passkey_user_handle, vynechá ho, ak ho tabuľka už má); stĺpce TOTP pridá vlastný stub balíka two-factor (two-factor-migrations), takže čerstvá inštalácia prejde cez authentication:check. Tabuľka každého ďalšieho guardu volá $table->authenticationColumns() (a $table->twoFactorColumns() či $table->passkeyUserHandle(), ak sú tieto funkcie zapnuté) — php artisan authentication:guard clients vám vygeneruje model, migráciu aj factory.
Diagnostika
php artisan authentication:checkDiagnostika overí všetky pravidlá konfigurácie, zapojenie providera, potrebné stĺpce, JWT kľúče, revoker prístupových tokenov, mail aj routy a pri akejkoľvek chybe skončí s kódom 1.
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.