kyzegs/supabase-auth-bundle
Laravel bundle that integrates Supabase Auth into PHP apps: verifies Supabase-issued JWTs, syncs users, and adds guards and middleware for protecting routes. Includes drop-in configuration for email/password and OAuth-based sessions, designed for quick setup in Laravel projects.
Package under review: kyzegs/supabase-auth-bundle — a Laravel/PHP package for integrating Supabase Auth (GoTrue) into a Laravel application. Assessment is based on the package's stated scope, the v1.0.0 → v1.0.1 release signal, and standard Laravel package conventions; no source review, changelog detail, or prior assessment exists.
Architecture fit
Auth guard/middleware that validates Supabase JWTs, and an optional user-provisioning hook to map Supabase users onto a local users table.Integration feasibility
composer require, publish config, set Supabase URL + keys, register the guard. A competent Laravel team can produce a working spike in under a day.v1.0.1 release carries no substantive changelog — only a GitHub compare link. That is not a blocking issue, but it means this release provides zero evidence of stability, roadmap direction, or defect triage. Treat v1.0.1 as functionally equivalent to v1.0.0 until the diff is reviewed.Technical risk
v1.0.1. No security policy, no published release narrative, no prior assessment in our records.JWT secret. A package that assumes the legacy shared secret will break at key rotation. This is the single highest-value question to resolve before commitment.supabase_id and raw JWT payloads through controllers, policies, and gates, making later replacement expensive.Key questions for the maintainer / spike
Auth guard (so auth()->user(), policies, and @can work unchanged), or is it a parallel auth path?v1.0.1? Any change to token validation, config keys, or dependencies?Stack fit
Migration path
web/api guards so routes can be moved over incrementally and rolled back per-route.users table with an explicit supabase_id column, and defer password-migration decisions (forced reset vs. lazy migration on next login) until the spike proves the guard works.Compatibility
laravel/framework, firebase/php-jwt, or lcobucci/jwt are the likeliest install-time blockers.supabase-js for login and passes the access token to Laravel, confirm the package accepts that token format and validates aud/iss/exp correctly."kyzegs/supabase-auth-bundle": "1.0.1") with a committed composer.lock; avoid ^1.0 until release notes become substantive.Sequencing
v1.0.0...v1.0.1 compare directly; confirm whether the patch touches token validation, config keys, or composer constraints.IdentityProvider/guard contract and a single SupabaseUserResolver, so no controller or policy references package classes directly.Maintenance
v1.0.1 changelog raises the per-upgrade cost: every bump requires diffing source rather than reading notes. That is manageable at current cadence but scales badly during a security incident when you need to know quickly whether you are affected.laravel/socialite-style custom guard or a first-party JWT implementation if the package is abandoned.Support
Scaling
Failure modes
v1.0.1-style unannounced change to validation logic could weaken or break auth with no changelog to point at. Mitigated by pinned versions, staged promotion, and an auth-specific smoke test in CI.JWT secret/JWKS config can fail open if the guard is written permissively. Verify the guard denies by default on any validation error.Ramp-up
How can I help you explore Laravel packages today?