mortezamasumi/fb-auth
Facebook authentication for Laravel: a small package that wires up the Facebook OAuth login flow so users can sign in with their Facebook account. It provides the redirect and callback handling needed to integrate Facebook login into your app's existing authentication setup.
config('fb-auth.auth_type') — link (magic link), code (email OTP), mobile (SMS OTP), and user (credential-based). This is a launch-acceleration feature, not a differentiator; the differentiation stays in your product surface.code, add mobile for mobile-first cohorts).fa/en) backoffices, mobile-first products where SMS OTP is the default expectation, internal tools built on Filament where passwordless reduces support tickets, and regional SaaS needing Jalali date handling alongside auth.src/. This is a documentation-integrity risk that should be resolved before quoting the package in a roadmap or vendor review.Adopt when all of these hold:
FbAuthPlugin overriding login/register/password-reset/email-verification defaults).fb-essentials (runtime toEN() macro), fb-sms (SMS gateway, requires fb-sms.operator config), and ariaieboy/filament-jalali. The mobile flow is not viable without all three.Look elsewhere when any of these hold:
For executives (30 seconds): This package lets us ship an authenticated admin panel — with magic-link, email-code, SMS-code, or password login — in days instead of weeks, with Persian and English out of the box, under an MIT license at zero license cost. The trade-off is dependency risk: it is a young, single-maintainer project with a small community. We mitigate that by pinning the version, isolating it behind our own auth interface so it can be swapped, and adding our own regression tests around password reset and login. Recommendation: proceed to a short, time-boxed spike before we commit it to a release.
For engineering leadership:
The plugin's actual mechanism is FbAuthPlugin, which substitutes Filament's default login, registration, password-reset, and email-verification pages based on an AuthType enum — it only fills defaults the panel hasn't overridden, so it composes rather than fights your configuration. OTP codes are generated and cached under otp-{identifier} by the FbAuth service (facade-accessible), with send and verify both rate-limited at 2/min. Delivery goes through Laravel notifications: email inline, mobile via fb-sms. Email verification replaces Filament's signed-link flow only when the panel calls ->emailVerification() and the user model implements MustVerifyEmail.
Quality signals are better than the 0-star count suggests: CI gates on pint --test → phpstan analyse (level 8) → pest --ci, semantic-release drives versioning from Conventional Commits, and the test suite is organized by flow (Link*, Code*, Mobile*, User*, PluginFlowTest, FbAuthServiceTest). That is a disciplined small project, not an abandoned one.
Known friction to budget for: mobile flow is unusable without fb-sms operator configuration and filament-jalali; resources/dist/ is committed and must be rebuilt via npm run build after any CSS/JS change; toEN() is a runtime macro injected by fb-essentials and is PHPStan-suppressed — do not "clean it up." The most recent patch (v5.2.1) is a one-line type fix to password-reset notification arguments, which is exactly the kind of change that warrants targeted tests rather than a routine bump.
The ask: one spike (non-production branch), a compatibility check against our exact Laravel/PHP patch levels, regression tests covering login, verification, password reset request, and notification argument construction, and a written runbook — before this appears in a customer-facing release plan.
How can I help you explore Laravel packages today?