kronthto/laravel-oauth2-login
Add OAuth2 social login to your Laravel app. This package provides a simple, configurable way to authenticate users through OAuth2 providers, handling the redirect and callback flow for you. Integrates with Laravel's auth system so users can sign in via third-party accounts.
composer why-not vendor/package ^1.13 if the constraint fails.composer require vendor/package:^1.13
Laravel 10 implies PHP 8.1+; Laravel 9 supports PHP 8.0+. Verify php -v matches before chasing resolution errors.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider") and read the resulting config/<package>.php top to bottom. In most Laravel packages of this shape, the config file is the real API surface — defaults, driver selection, and connection settings all live there.php artisan tinker session — resolve the package's main class from the container, call one method, and confirm it returns without touching config. That tells you whether the auto-discovery and default bindings work on your Laravel version before you invest in real integration.app()-resolve, in application code. Constructor-inject the package's contracts into your services and controllers. This keeps your code testable and lets you swap the package's binding for a fake later. Reserve app() / facades for one-off scripts and Artisan commands.config/<package>.php as application code: commit a single version and drive environment differences through env() calls inside it, not by keeping divergent config files per environment. This matters more post-upgrade, since Laravel 9→10 changed how some env() fallbacks behave under config:cache.App\Services\... class that owns all calls into the package pays for itself at every major version bump. When 2.x drops, you edit one class instead of grepping the codebase. This is especially valuable given the package just demonstrated it will prune old framework support aggressively.composer.json.laravel/framework to ^9.0|^10.0 if you haven't already.composer update vendor/package --with-dependencies and read every conflict message — a dropped older version usually surfaces as a transitive dependency clash, not a direct one.php artisan config:clear && php artisan cache:clear && composer dump-autoload.Bus::dispatchAfterResponse and job-batching semantics are worth re-testing after the bump.setUp() or use the package's provided test helpers if they exist. With RefreshDatabase plus a faked binding you get fast, deterministic tests that don't care which Laravel minor you're on.composer update. Pin explicitly ("vendor/package": "~1.12") if you cannot upgrade the framework yet, and put that pin in writing so it isn't silently lifted by a composer update on a colleague's machine.composer why-not is your first debugging tool, not the package's issue tracker. Nine times out of ten a v1.13.0 install failure is a PHP version floor or a transitive package still requiring an older framework.php artisan config:cache will bake in whatever env() values exist at build time. If behaviour differs between php artisan serve and your deployed container, that's the cause — clear and rebuild the cache as part of deploy, never commit bootstrap/cache/config.php.doctrine/dbal as a core dependency. If the package (or your own code around it) relied on ->change() migrations or ->getDoctrineColumn(), add doctrine/dbal explicitly or rewrite those migrations. This bites during the upgrade window, not at install time.bootstrap/cache/packages.php and run php artisan package:discover. A stale manifest is the usual culprit, not a broken release.AppServiceProvider::register()), custom driver registration in the config, and any macroable classes. Most "the package doesn't support X" problems are solved by rebinding an interface rather than patching vendor code.^1.13 rather than *, and read changelogs before composer update in CI — consider composer outdated --direct in your pipeline to surface these bumps deliberately.How can I help you explore Laravel packages today?