PHPackages                             enzoaccardo/ci4-adminkit-mfa - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. enzoaccardo/ci4-adminkit-mfa

ActiveLibrary

enzoaccardo/ci4-adminkit-mfa
============================

MFA (TOTP + WebAuthn/Passkey + recovery codes) per ci4-adminkit: servizi, flusso front, model, migrazioni. Viste dal tema ci4-adminkit-adminlte4.

v0.1.0(1mo ago)01↑2900%MITPHPPHP ^8.2

Since Jun 11Pushed todayCompare

[ Source](https://github.com/enzoaccardo/ci4-adminkit-mfa)[ Packagist](https://packagist.org/packages/enzoaccardo/ci4-adminkit-mfa)[ RSS](/packages/enzoaccardo-ci4-adminkit-mfa/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (6)Versions (2)Used By (0)

ci4-adminkit-mfa
================

[](#ci4-adminkit-mfa)

Secondo fattore di autenticazione per i pannelli basati su ci4-adminkit: codice TOTP da app authenticator, passkey WebAuthn e codici di recupero.

Dipende solo dal kit. Il tema AdminLTE è consigliato ma non obbligatorio: se c'è, le schermate dell'MFA usano le sue viste; se manca, il pacchetto ne ha di proprie, essenziali ma funzionanti, e il flusso gira lo stesso.

Come si aggancia
----------------

[](#come-si-aggancia)

Le rotte del flusso (setup, verifica, recupero, passkey) le registri con una riga:

```
\AdminKit\Routing\Discovery::discover($routes, 'AdminKit\Mfa\Controllers');
```

Nel tuo login, dopo aver controllato la password, chiedi al servizio se serve il secondo passaggio:

```
if (service('mfa')->isRequired($user)) {
    session()->set('mfa_pending', $user->mfa_secret ? 'verify' : 'setup');
    return redirect()->to($user->mfa_secret ? '/mfa/verify' : '/mfa/setup');
}
```

Il resto (QR per l'app authenticator, verifica del codice, generazione e controllo dei recovery code, ceremony della passkey) è già scritto.

Installazione
-------------

[](#installazione)

```
composer require enzoaccardo/ci4-adminkit-mfa
php spark migrate --all
php spark mfa:publish

```

Serve una tabella `users` con almeno `id`, `email` e `name`. Le colonne per l'MFA e le tabelle per recovery code e passkey le creano le migrazioni.

Sotto il cofano
---------------

[](#sotto-il-cofano)

TOTP con pragmarx/google2fa, il QR con bacon/bacon-qr-code, il WebAuthn con web-auth/webauthn-lib. I recovery code vengono salvati con l'hash, non in chiaro, e si consumano una volta sola. La configurazione (issuer mostrato nell'app, quale UserModel usare, dove reindirizzare) sta in `Config\Mfa`; `rpId` e `origin` della passkey in `Config\Passkey`, che se non li imposti li ricava dall'host.

Licenza
-------

[](#licenza)

MIT. Vedi [LICENSE](LICENSE).

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance96

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

48d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12847278?v=4)[Enzo Accardo](/maintainers/enzoaccardo)[@enzoaccardo](https://github.com/enzoaccardo)

---

Top Contributors

[![enzoaccardo](https://avatars.githubusercontent.com/u/12847278?v=4)](https://github.com/enzoaccardo "enzoaccardo (6 commits)")

### Embed Badge

![Health badge](/badges/enzoaccardo-ci4-adminkit-mfa/health.svg)

```
[![Health](https://phpackages.com/badges/enzoaccardo-ci4-adminkit-mfa/health.svg)](https://phpackages.com/packages/enzoaccardo-ci4-adminkit-mfa)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.2k](/packages/craftcms-cms)[statamic/cms

The Statamic CMS Core Package

4.8k3.6M1.0k](/packages/statamic-cms)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[contao/core-bundle

Contao Open Source CMS

1231.6M2.9k](/packages/contao-core-bundle)[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

23.9k69.5k](/packages/grumpydictator-firefly-iii)[jeffgreco13/filament-breezy

A custom package for Filament with login flow, profile and teams support.

1.0k2.1M68](/packages/jeffgreco13-filament-breezy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
