deyvo/auth

Auth package for Deyvo Laravel applications

Maintainers

Package info

github.com/Deyvo-Group/Deyvo-Auth

pkg:composer/deyvo/auth

Transparency log

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.2 2026-08-14 09:07 UTC

This package is auto-updated.

Last update: 2026-08-14 09:07:32 UTC


README

deyvo/auth is de package-vriendelijke auth-laag voor Deyvo Laravel-applicaties. De package levert routes, controllers, validatie, Blade-views, migrations, MFA, recovery codes, sessiebeveiliging en audit-hooks zonder hostbestanden te overschrijven.

Installatie

composer require deyvo/auth
php artisan vendor:publish --tag=deyvo-auth-config
php artisan vendor:publish --tag=deyvo-auth-views
php artisan migrate

De publieke auth-routes staan standaard onder /auth en gebruiken Laravel-standaardnamen zoals login, logout, password.request, verification.notice en password.confirm.

Belangrijke .env-waarden:

DEYVO_AUTH_ENABLED=true
DEYVO_AUTH_ROUTES_ENABLED=true
DEYVO_AUTH_PATH=auth
DEYVO_AUTH_REGISTRATION_ENABLED=false
DEYVO_AUTH_EMAIL_VERIFICATION_REQUIRED=false
DEYVO_AUTH_MFA_REQUIRED_FOR_DASHBOARD=false
DEYVO_DASHBOARD_PATH=dashboard

Wachtwoordbeleid

De package gebruikt een NIST/OWASP-vriendelijk beleid:

  • minimaal 15 tekens wanneer een wachtwoord single-factor kan zijn;
  • minimaal 8 tekens alleen wanneer MFA voor die context verplicht is;
  • minimaal 64 tekens worden geaccepteerd; standaard maximum is 128;
  • spaties en Unicode zijn toegestaan;
  • geen verplichte hoofdletters, cijfers of symbolen;
  • geen stille truncation;
  • veelgebruikte en contextuele wachtwoorden worden geweigerd;
  • optionele Have I Been Pwned k-anonymity check via DEYVO_AUTH_PASSWORD_BREACHED_CHECK_ENABLED.

Hashing loopt via Laravel Hash, zodat hosts Argon2id kunnen afdwingen via hun normale Laravel hashconfig.

MFA

MFA is opgezet als factor-systeem. De eerste methode is TOTP:

  • secret wordt pas opgeslagen na een geldige TOTP-code;
  • recovery codes worden eenmalig getoond en alleen gehashed opgeslagen;
  • recovery codes zijn single-use;
  • MFA uitschakelen vereist recent bevestigde password confirmation plus een actieve MFA/recovery-code;
  • DEYVO_AUTH_MFA_REQUIRED_FOR_DASHBOARD=true dwingt setup en challenge af voor dashboardroutes.

De package gebruikt geen SMS als standaard. WebAuthn/passkeys kunnen later als extra factor-type naast totp worden toegevoegd.

Views

Publieke auth-views renderen standaard in een standalone package-layout. Daardoor verschijnen login, password reset en MFA setup niet binnen de normale website-header en footer.

Een host kan expliciet kiezen om auth-views toch in de website-layout te tonen:

'views' => [
    'public_layout' => 'layout.app',
    'public_layout_section' => 'content',
],

Of via .env:

DEYVO_AUTH_PUBLIC_LAYOUT=layout.app
DEYVO_AUTH_PUBLIC_LAYOUT_SECTION=content

Dashboard security gebruikt deyvo::dashboard.layout wanneer deyvo/core aanwezig is en valt anders terug op een minimale package-layout.

Audit

Auth-events worden via Deyvo\Auth\Support\AuthAuditLogger opgenomen. Als Deyvo\Core\Support\AuditLogger beschikbaar en gebonden is, gebruikt Auth die automatisch. Anders schrijft de package een veilige logregel via Laravel Log.

De logger bewaart geen wachtwoorden, OTP's, TOTP-secrets, reset tokens of recovery codes.

Releases

De GitHub Actions workflow maakt op main automatisch een tag en GitHub Release op basis van Conventional Commits:

  • fix: verhoogt de patchversie, bijvoorbeeld v0.0.0 naar v0.0.1;
  • feat: verhoogt de minorversie, bijvoorbeeld v0.0.0 naar v0.1.0;
  • feat!: of BREAKING CHANGE: verhoogt de majorversie, bijvoorbeeld v0.1.0 naar v1.0.0;
  • commits zonder release-prefix, zoals docs: of chore:, maken geen release.

Tests

composer test