Skip to content
CAI
Software that uses CAICheck a score

laravel/socialite

61.9

Adequate · 19 September 2026

3k

lines of production code

PHP

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Laravel Socialite library that facilitates OAuth 1.0 and OAuth 2.0 authentication integrations with various providers. It manages user identity retrieval, token handling, and provider configuration while enforcing strict validation for missing credentials. The library also provides comprehensive testing utilities, including fake implementations for mocking authentication flows and verifying user data.

Features

Major overhaul of Socialite OAuth2 providers and core classes

This change introduces several new OAuth2 providers (Bitbucket, Gitlab, LinkedIn OpenID, Slack OpenID, Twitch, Twitter, and X) and significantly updates existing ones (Facebook, GitHub, Google, LinkedIn, Slack) to support modern API versions, OIDC tokens, and PKCE. The core \AbstractProvider\ and \User\ classes have been refactored to support refresh tokens, approved scopes, and a new \Token\ class, while the \User\ class now includes a \fake()\ method for testing.

src/Two · high confidence

Socialite facade gains a fake() method for testing

The Socialite facade now includes a static fake() method, allowing developers to easily mock social authentication flows in tests by swapping the underlying factory with a SocialiteFake instance. This change also updates the SocialiteManager to implement the Factory contract and improves the SocialiteServiceProvider to register the factory as a singleton and support deferred loading.

src · high confidence

Behavioural changes

Enhanced OAuth 1.0 provider capabilities and testing support

The Socialite One component now provides better integration with Laravel's HTTP and session handling by switching to Illuminate's RedirectResponse and using the session helper. It introduces new exception classes (MissingTemporaryCredentialsException, MissingVerifierException) for clearer error handling. The Twitter provider has been expanded to include location and description fields, support for original-sized avatars, and the ability to set OAuth scopes. Additionally, a new userFromTokenAndSecret method allows retrieving user profiles from existing credentials, and a User::fake() static method has been added to facilitate testing by creating mock user instances.

src/One · high confidence

Redefine socialite contracts and introduce Factory interface

The library's contract layer has been reorganized: the previous \ProviderInterface\ from the \One\ namespace is renamed to \Provider\ and moved to \src/Contracts\, with its \redirect()\ return type broadened to also accept \Illuminate\\Http\\RedirectResponse\ and its \user()\ method now returning the new \Contracts\\User\ interface. A new \Factory\ interface is added to allow retrieving provider instances by driver name, and a new \User\ interface is introduced to standardize access to user attributes (ID, nickname, name, email, avatar).

src/Contracts · high confidence

Repository configuration and documentation overhaul

This change introduces several structural and documentation updates to the repository. It adds standard configuration files including \.editorconfig\ for consistent coding styles, \.gitattributes\ to manage line endings and export ignores, \.styleci.yml\ for StyleCI integration, and \phpstan.neon.dist\ for static analysis. The CI system has been migrated from Travis CI (\.travis.yml\ removed) to GitHub Actions, and the PHPUnit configuration has been renamed to \phpunit.xml.dist\ with updated test directory patterns and deprecation handling. Documentation has been refreshed with a new \README.md\, \CHANGELOG.md\, and \UPGRADE.md\ guide, while the license file was renamed from \LICENSE.txt\ to \LICENSE.md\ and the \.gitignore\ was updated to exclude local PHPUnit cache files.

(repo-wide) · high confidence

Simplified Socialite facade implementation

The Socialite facade has been refactored to extend the main Socialite class directly instead of inheriting from the generic Facade base class and manually implementing getFacadeAccessor. This change removes the explicit accessor registration ('socialite') and relies on the parent class's built-in facade resolution mechanism, resulting in a cleaner, more concise facade definition.

src/Facades · high confidence

Throw exception for incomplete OAuth driver configuration

A new \DriverMissingConfigurationException\ has been added to the \src/Exceptions\ directory. This exception is thrown when required configuration keys are missing for a specific OAuth provider, providing a clear error message that identifies the provider and the missing keys, rather than failing silently or with a generic error.

src/Exceptions · high confidence

Test coverage

Added testing fakes for Socialite providers; Expanded test coverage for Socialite providers and testing utilities.

Dependencies

Laravel Socialite 5.x: Major dependency and framework version updates

This release updates the composer.json manifest to require PHP 8.1 or higher and introduces auto-discovery support for Laravel 5.5 through 13.x via the new 'extra.laravel' configuration. Key dependencies have been upgraded and expanded: Guzzle is now supported in versions 6.0, 7.0, and 8.0; the Firebase JWT library is updated to versions 6.4 or 7.0; and phpseclib is upgraded to version 4.0. Development dependencies have also been refreshed, with PHPUnit, Mockery, and Orchestra Testbench updated to their latest compatible major versions, and PHPStan added for static analysis.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 62.

Lenses

  • Code Health 98
  • Architecture 100
  • Maturity 35
  • Readiness 82
  • Security 82

Changes since last survey

  • 300 commits — 261 feature/other, 39 fixes

By area

  • (root) — 106 commits
  • src/Two — 64 commits
  • (repo) — 33 commits
  • .github/workflows — 29 commits
  • src/SocialiteManager.php — 20 commits
  • .github/ISSUE_TEMPLATE — 8 commits
  • src/Facades — 8 commits
  • src/AbstractUser.php — 5 commits
  • src/One — 4 commits
  • resources/boost — 3 commits
  • src/Testing — 3 commits
  • art/.DS_Store — 2 commits
  • art/logo.svg — 2 commits
  • src/Contracts — 2 commits
  • src/Exceptions — 2 commits
  • tests/LinkedInProviderTest.php — 2 commits
  • tests/OAuthOneTest.php — 2 commits
  • .github/SECURITY.md — 1 commit
  • .github/dependabot.yml — 1 commit
  • src/SocialiteServiceProvider.php — 1 commit

Notable commits

  • fix: Apply fixes from StyleCI
  • fix: Apply fixes from StyleCI
  • fix: Apply fixes from StyleCI
  • fix: Apply fixes from StyleCI
  • fix: Apply fixes from StyleCI
  • fix: Apply fixes from StyleCI
  • fix: Apply fixes from StyleCI (#519)
  • fix: Fix PHP 8.1 issues (#567)
  • fix: Fix User return types (#614)
  • fix: Fix a docblock (#584)
  • fix: Fix bitbucket
  • fix: Fix config object override with container (#639)
  • fix: Fix container call
  • fix: Fix guzzle version
  • fix: Fix phpstan issues in Twitter and Slack drivers (#653)
  • fix: Fix return type for functions which make use of json_decode (#745)
  • fix: Fix scope separator in Gitlab provider
  • fix: Fix static analysis issues (#793)
  • fix: Fix test
  • fix: Fix test
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

laravel/socialite was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit fa0181ee6204ca28a55cd67145fadd631ac209cf — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.