Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Guard Laravel Package

knpuniversity/guard

KnpUniversity Guard adds simple, flexible guard-based authentication to Symfony. Define a guard class to handle credentials, user loading, success or failure, and token creation, making custom login flows and API authentication easier.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Premise correction as the first decision: This is a Symfony bundle, not a Laravel package. No service provider, facade, or Illuminate\Auth driver contract exists here. Any roadmap item framed as "evaluate this Laravel auth package" is mis-filed and should be closed with that finding recorded. Laravel-relevant auth decisions run through native guards, Sanctum/Passport, Fortify, and Socialite — not this repository.
  • Build vs. buy vs. use-native (the actual decision): This package is evidence for a "use the framework" conclusion. Guard-style authentication was incubated here and then absorbed into Symfony's Security component (native Guard, 2.8/3.0+), and superseded again by AuthenticatorInterface (5.3+). For any new build, the answer is neither build nor buy — use the framework's native authenticator. This package is the paper trail for that recommendation, not the recommendation.
  • Dependency hygiene and technical-debt triage: If a scan surfaces knpuniversity/guard in a composer.json, treat it as a legacy marker for a Symfony 2.6/2.7-era application. That finding opens a remediation ticket — not an evaluation spike.
  • Authentication architecture review: The Guard pattern — a single authenticator handling credentials, user loading, success, failure, and challenge entry point in one class — is the conceptual ancestor of both Symfony's authenticator system and Laravel's guard/driver model. Worth reading as reference material when designing custom auth flows. Not a component to ship.
  • Migration scoping: Because the API surface was absorbed upstream with similar names and responsibilities, replacement is typically localized to a small number of authenticator classes rather than the whole auth layer. That bounds the estimate for legacy modernization work to a scoped ticket, not a program.
  • Vendor-risk register entry: Archived status, a final release in September 2015, zero dependents, and no security-response path make this a named risk item for any product still carrying it. MIT licensing removes legal friction but does nothing about the maintenance gap.
  • Signal calibration: The high "opportunity" score measures an unoccupied niche, not viability. Do not let an algorithmic score substitute for lifecycle facts — archived, decade-old, no maintainers, no dependents — when making an adoption call.

When to Consider This Package

Consider it only in a narrow, defensive scenario:

  • You maintain an application pinned to Symfony 2.6/2.7 that already depends on this bundle, and an immediate upgrade is genuinely blocked by unrelated constraints.
  • You need to interpret historical Guard semantics in existing auth code before replacing it.

Even then, the correct action is to plan the exit — upgrade to a Symfony release with native Guard, then forward to the modern authenticator system as the framework version allows.

Look elsewhere — decisively — when:

  • Starting anything new. Use the framework's native authentication. There is no scenario where adding an archived 2015 package to a new application is the right call.
  • You need maintained security. Authentication is the highest-consequence attack surface. A package with no releases since 2015 has no CVE response path, no PHP 7/8 compatibility guarantees, and no one to escalate to.
  • You are on Laravel. The naming is coincidental. Laravel's guard abstraction is a different, first-party concept; this package is not applicable, and forcing an install fails constraint resolution against PHP 5-era Symfony requirements.
  • You require support, SLAs, or long-term maintenance. Archived plus zero dependents means no community, no issue triage, no upstream fixes.
  • Your compliance posture requires a supported dependency tree. An unmaintained auth dependency is hard to defend in a security review regardless of how small the code is.

How to Pitch It (Stakeholders)

To executives — one line: This is not a library we should adopt. It is a 2015 proof-of-concept whose ideas were absorbed into Symfony itself; using it today would mean taking on an unmaintained, security-sensitive dependency to get functionality the framework already provides for free.

The business case in three points:

  1. Zero upside. The capability exists natively in the framework. Adopting this package adds risk without adding capability.
  2. Real downside. Authentication is the highest-consequence surface in the product. An archived package with no releases in roughly a decade has no security-patch path and no maintainer to call — and on a Laravel estate it doesn't even install.
  3. Bounded cost to fix. Where it already exists, replacement is typically confined to a handful of authenticator classes, so remediation is a scoped ticket, not a program.

To engineering — the practical framing: Treat a knpuniversity/guard reference in composer.json as a legacy marker. On Symfony, the migration target is native Guard on 2.8/3.x, then the modern authenticator system on 5.3+. Expect mechanical work: map getCredentials / getUser / checkCredentials / onAuthenticationSuccess / onAuthenticationFailure / start onto the native equivalents. On Laravel, do not port this package — extract the pattern (credential retrieval, unauthenticated token, credential check, success/failure branch, remember-me, challenge entry point) into a short internal design note, then implement natively with a custom guard via Auth::extend, a matching user provider, and Fortify/Sanctum/Socialite for flows that already have first-party support. Add a CI check so the dependency cannot reappear, and log the removal in the vendor-risk register.

Recommendation: Do not adopt. Where present, schedule removal as routine technical-debt remediation, prioritized by exposure of the affected auth path rather than headline severity. Keep the repository as documentation only.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource