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

Laravel Passkeys Laravel Package

spatie/laravel-passkeys

Spatie's Laravel Passkeys package adds passwordless login to Laravel apps, with a Livewire component for generating and storing passkeys on user devices and a Blade component for authenticating users with those passkeys.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping: passwordless authentication. The package delivers both halves of the passkey flow — a Livewire component to register/enroll a passkey and a Blade component to authenticate with one — so a PM can scope "add passkey login" as a shippable increment rather than a research project.
  • Security roadmap and compliance conversations. Passkeys are phishing-resistant, device-bound credentials, which maps directly to the language security reviewers and enterprise buyers use (MFA mandates, "no shared secrets," reduced credential-stuffing exposure). This is a credible line item in a security posture deck, not just a UX nicety.
  • Build vs. buy. The hard parts of WebAuthn are ceremony-level: challenge generation, origin/RP-ID validation, attestation and assertion verification, signature counter tracking, and serialization of credential records. The package wraps web-auth/webauthn-lib and hides that surface area. Buying (MIT, zero license cost) is the default; building in-house is only justified if you need control the wrapper does not expose.
  • Conversion and support-cost modeling. Passkey-first login is a lever on two metrics PMs already own: login success rate / time-to-authenticate, and password-reset ticket volume per active user. Frame the business case as reduced reset cost plus improved returning-user conversion, with passkey adoption rate as the leading indicator.
  • Rollout sequencing. Because enrollment and authentication are separate, separable components, you can ship opt-in enrollment first (settings page), measure adoption, then add login-page prompting. That de-risks the launch and gives you two measurable milestones instead of one big-bang release.
  • Segmentation decisions. Best-fit use cases are high-value accounts (B2B admin/workspace owners), mobile-heavy consumer bases where platform authenticators (iCloud Keychain, Google Password Manager, 1Password) are already in users' hands, and flows where passkeys sit alongside — not instead of — SSO and existing MFA.
  • Localization planning. The package ships translations across more than ten locales, which makes an international launch decision cheaper: you are not paying for auth-string localization work.

When to Consider This Package

Consider it when:

  • You are on Laravel/PHP with Livewire installed or acceptable — the registration UI is a Livewire component and that is a hard requirement, not a footnote.
  • Your auth screens are Blade-based and you want functional passkey enrollment with minimal custom front-end work.
  • You need standard passkey registration and login, plus the operational knobs already provided: configurable allowed origins, remember-me support, configurable ceremony step handling, and authenticator selection criteria.
  • Your team is small and authentication is not a differentiator — the wrapper's value is precisely that it removes bespoke ceremony code from your backlog.
  • You can commit to pinning web-auth/webauthn-lib and regression-testing auth on upgrade. The 1.6.x changelog shows real type-hint breakage from the 5.3 upgrade path (fixed in 1.6.4/1.6.5), which is normal for this dependency but must be planned for.

Look elsewhere, or plan additional investment, when:

  • Your front end is an Inertia/React/Vue SPA. Inertia usage is documented, but you will own materially more JavaScript and gain less from the Blade component.
  • You need strict enterprise attestation policy (allow-listed authenticators, attestation CA validation, hardware-key-only enforcement) or deep customization of the ceremony — evaluate web-auth/webauthn-lib directly.
  • You need a commercial SLA or vendor support contract. This is MIT-licensed, community-maintained open source from Spatie: excellent track record, active releases, but no contractual support.
  • You want ecosystem validation as a proxy for safety. 475 stars and a reported dependents count of zero mean limited external adoption signal; budget for internal code review and a proof-of-concept rather than assuming battle-testing.
  • Your actual problem is password friction, not credential security — magic links or OTP may be cheaper and cover more legacy devices. Passkeys are weakest where users are on old hardware or shared devices.

How to Pitch It (Stakeholders)

For executives: This is a low-cost, high-signal security and conversion upgrade. Passkeys replace passwords with device-held credentials that cannot be phished or reused in credential-stuffing attacks, which is exactly the framing security questionnaires and enterprise procurement reviews reward. The software is MIT-licensed with no per-seat cost, the integration is measured in days rather than quarters, and it ships with translations for more than ten markets. The recommendation is a time-boxed proof of concept behind a feature flag, followed by opt-in enrollment so we can measure adoption before touching the primary login path.

For engineering: We are adopting spatie/laravel-passkeys, a maintained wrapper around web-auth/webauthn-lib. It gives us a Livewire enrollment component, a Blade authentication component, configurable allowed origins, remember-me, and hooks for customizing ceremony steps — meaning we do not write or maintain attestation/assertion verification ourselves. Two caveats to accept up front: Livewire becomes a runtime dependency for the enrollment UI, and webauthn-lib version upgrades have caused type-level breakage before (addressed in 1.6.4/1.6.5), so we pin the dependency and keep an auth regression suite. Expected cost: a short spike to validate the flow end-to-end, then a scoped implementation sprint.

The ask: Approve a one-to-two day spike plus a feature-flagged opt-in release. Success criteria are passkey enrollment rate, login success rate for enrolled users, and a measurable decline in password-reset volume — with the go/no-go on login-page prompting decided from that data.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle