youshido/token-authenticator
youshido/token-authenticator adds token-based authentication to Laravel apps, letting you issue, validate, and revoke API tokens through a dedicated guard and middleware that plug into your existing user model and routes.
Architecture fit
The package name says Laravel, but the repository is TokenAuthenticatorBundle — a Symfony bundle, not a Laravel package. That distinction is the whole evaluation. Its integration surface is Symfony's Security component: a bundle class registered in AppKernel/bundles.php, a firewall listener or Guard authenticator wired through DI service tags, Doctrine-backed token entities, and YAML/XML service configuration. Laravel has no equivalent bundle registry, no Symfony firewall, no TokenStorage, and its own Guard contract that is unrelated to Symfony's. There is no Laravel service provider, no config/ publishable, no Eloquent model, no middleware. Architectural fit against a Laravel stack is effectively zero; this is a reference implementation to read, not a dependency to install.
Integration feasibility
Making this work in Laravel means writing the integration layer ourselves: a service provider, a config file, an Eloquent (or cache-backed) token model and migration, a Laravel Guard implementation, and middleware replacing the Symfony listener — plus a compatibility shim for whatever Doctrine assumptions are baked in. That is a port, not an integration. Budget it as a 2–4 week engineering effort with a security review, for functionality that Laravel Sanctum already ships as a first-party, actively maintained package.
Technical risk
High, on multiple independent axes:
symfony/security-guard (deprecated in Symfony 5.3, removed in 6.0) and PHP 7.x. Resolution against Laravel 10/11 on PHP 8.1+ will likely fail outright; --ignore-platform-reqs is not an acceptable production posture.Key questions
Stack fit
Poor for Laravel, dated even for Symfony. If our stack were Symfony 4.x, this would be a plausible (if aging) Guard authenticator. On Laravel, the native equivalents are strictly better: Sanctum for opaque personal access tokens and SPA auth, Passport for full OAuth2, or a custom Guard for bespoke requirements. Each is first-party, maintained, documented, and already present in most Laravel deployments.
Migration path
Three viable options, in order of preference:
HasApiTokens trait, migrations and middleware included. Close this evaluation as "reject — superseded."Compatibility
Before any further work, inspect composer.json for php, symfony/*, and doctrine/* constraints. If they cap below PHP 8.1, the package is a non-starter for any current Laravel release and option 3 becomes a from-scratch rewrite rather than a port. Treat a failed composer require in a throwaway Laravel 11 skeleton as the fastest disconfirming test — one hour, run first.
Sequencing
If we proceed at all, sequence as: compatibility spike (1–2 days) → go/no-go gate → security review of port design → implementation → internal release. But the TPM recommendation is to run only the first step, expect it to fail, and redirect the entire budget to Sanctum configuration review and token-lifetime policy hardening — which is where the actual risk in our auth surface lives.
Maintenance
Effectively unmaintained. No releases since 2019, no dependents to surface or fix issues, no evidence of CI or an active maintainer. Every patch, dependency bump, and PHP-version adaptation becomes ours. This is an indefinite ownership commitment disguised as a composer require.
Support
Community support is nonexistent — 0 stars means no issue traffic to search, no Stack Overflow corpus, no third-party writeups. Internal on-call must own the token authentication path outright, and debugging cross-model failures (Symfony Security semantics inside a Laravel request lifecycle) is a scarce skill combination. Escalation path is the source code.
Scaling
Token auth itself scales horizontally; the concern is per-request validation cost. Older bundles typically hit the database on every request with no caching layer and no guidance on token indexing, which becomes a hot-table problem at volume. Sanctum supports cache-backed and expiry-aware validation out of the box; a port would need that designed in deliberately.
Failure modes
Ramp-up
The API surface is small and a competent engineer can read it in a day. The risk surface is not: understanding why a request is rejected or, worse, wrongly accepted requires fluency in both Symfony's and Laravel's security models. Plan for one senior engineer to own the auth domain rather than distributing it across the team.
Recommendation: reject as a dependency, retain as a reference. The combination of 0 stars, 0 dependents, six years without a release, and a fundamental framework mismatch makes this a negative-expected-value adoption for security-critical code. Lavarel Sanctum solves the underlying problem with a fraction of the risk.
How can I help you explore Laravel packages today?