mikebronner/laravel-sign-in-with-apple
A Laravel package that adds Sign in with Apple authentication to your app. It handles Apple's token verification, user lookup and creation, and integrates cleanly with Laravel's existing auth scaffolding and Socialite-style flows.
invalid_client, and missing authorization codes, plus graceful 5xx handling, change the calculus from "we'll build it and debug blind" to "we get diagnosable failures out of the box."client_secret JWT generator removes a small but easy-to-get-wrong crypto task; standardize on the package rather than duplicating ES256 signing logic.services.apple, plus new auto-routes), which is itself a roadmap item — pin and schedule.Adopt when:
client_secret JWT generated for you instead of maintaining an in-house signer.invalid_client, missing authorization code, Apple 5xx) rather than silent failures.services.apple, so existing config files, env mappings, and any code reading the old keys must be updated. Treat 13.0.0 as breaking and plan an upgrade spike.Look elsewhere when:
Executives: Apple requires that iOS apps offering third-party login also offer Sign in with Apple. This package lets us ship that with minimal engineering effort instead of building and maintaining Apple's OAuth token exchange and client-secret signing ourselves. The new 13.0.0 release keeps us current with Laravel 13 and PHP 8.5 — protecting our upgrade timeline — and adds the error handling and access-revocation support we need for account-deletion compliance. Cost is low and the risk is contained to a scheduled upgrade.
Engineering: 13.0.0 is a major release. Highlights: Laravel 13 / PHP 8.5 support, a PHP client_secret JWT generator, descriptive exceptions for Apple token errors and invalid_client, redirect-URL validation, graceful Apple 5xx handling, a CSRF-token-mismatch fix on the callback, and auto-registered routes plus a controller. Two things to plan for before upgrading: (1) config keys moved under services.apple — update config, env mappings, and any direct config reads; (2) auto-registered routes mean you should confirm the default endpoints/controller fit our auth flow, or disable them and wire our own. Budget a short spike to verify the callback/CSRF path and the revocation handler in staging.
How can I help you explore Laravel packages today?