fourcoders/latch-bundle
Fourcoders LatchBundle integrates Telefónica Latch into Symfony apps, adding account lock/unlock and second-factor protection. Configure API credentials, pair user accounts, and query Latch status through simple bundle services.
Headline finding: the package is mislabeled in our intake. fourcoders/latch-bundle is a Symfony 2 bundle, not a Laravel package, and it wraps Latch — Telefónica ElevenPaths' account-lock/approval service, which was discontinued. The bundle is a ~2014-era integration shim for a service that no longer answers. The technical risk is not "will it work with Laravel," it is "does the product it integrates with still exist."
Architecture fit
DependencyInjection\Extension, compiler passes, Resources/config/services.xml|yml, and annotation-driven listeners. Laravel has no bundle concept; the closest analogue (a Service Provider + config file + facade) shares none of the code.pair, status, lock/unlock), plus probably an annotation or listener for route-level enforcement. That is roughly 100–200 LoC to reproduce idiomatically in Laravel with Guzzle/Http and a middleware.Integration feasibility
symfony/framework-bundle, symfony/dependency-injection ^2.1–2.8) conflict with the Symfony 5/6/7 components Laravel 10/11 already pulls (http-foundation, console, process, mailer). Expect a hard dependency-resolution failure, not a runtime bug to patch around.elevenpaths/latch-sdk-php is likewise abandoned. Even a from-scratch client would target a decommissioned https://latch.elevenpaths.com endpoint, so the integration would fail at the network layer regardless of code hygiene.Technical risk
NOASSERTION with no LICENSE file means, under default copyright, all rights reserved. We cannot copy, modify, or redistribute the bundle until the fourcoders authors grant terms — and there is no maintainer activity since 2015-01-15.array() short-form absence, no scalar type hints) will not survive PHP 8.1+ static analysis and may emit deprecations/fatals.Key questions for the requester
pragmarx/google2fa, WebAuthn/web-auth/webauthn-lib, Laravel Fortify's 2FA, Passport/Sanctum for device trust).Stack fit
| Bundle concept | Laravel equivalent | Portability |
|---|---|---|
LatchBundle + DI Extension |
LatchServiceProvider + config/latch.php |
Rewrite (trivial) |
| Service definitions / constructor injection | Container bindings, singleton() |
Rewrite (trivial) |
| Annotation/route listener enforcement | HTTP middleware or Form Request rule | Rewrite (moderate) |
| Bundled config tree validation | config/latch.php + config()->integer() |
Rewrite (trivial) |
| Latch SDK HTTP calls | Http::withToken()->timeout() |
Replace with new client |
Net: nothing transfers. The package supplies a design sketch and a wire-format hint, not an asset.
Migration path
composer.json on a branch "just to spike." Licence ambiguity plus dead endpoint means the spike has no information value.App\Contracts\StepUpVerifier with challenge(User): ChallengeId and verify(ChallengeId): bool. Bind a TOTP/WebAuthn implementation first. If a Latch-compatible contract surfaces, a second binding slots in without touching call sites.EnsureStepUpVerified on the privileged route group, reading a short-lived session/claim flag, with an explicit fail_open/fail_closed config switch.Compatibility
Sequencing
Maintenance
Support
NOASSERTION. Budget for that conversation; it does not resolve quickly with an inactive maintainer.Scaling
Failure modes
try/catch around a dead client turns step-up auth into a no-op that looks green in dashboards.Ramp-up
How can I help you explore Laravel packages today?