sirwaddles/steamauth
SteamAuth is a Laravel package that adds Steam OpenID authentication to your app. It handles Steam login redirects, validates OpenID responses, and retrieves the authenticated user's Steam profile data for easy account linking.
claimed_id → SteamID64 extraction. Ten stars and zero dependents means no community QA and no de facto maintenance channel. The value of adopting this as a dependency is low relative to the cost of inheriting an unmaintained one. A PM decision to "write the ~150-line adapter ourselves" is defensible and probably correct; treat this repository as a reference implementation, not a dependency.steam_id) far more than it changes the auth code. The bundle ships no account-linking primitives; that is a design decision we own, and it should be settled before engineering starts.Consider it only when all of the following hold:
SteamAuthBundle — a Symfony bundle. The listing as a generic Laravel/PHP package is misleading. In a Laravel codebase there is no ServiceProvider, no facade, no Auth::driver('steam'); its wiring assumes Symfony's DI container, security firewall, event dispatcher, and HTTP kernel. At best you extract the handshake logic and rewrite the integration layer.Look elsewhere — or build in-house — when:
socialiteproviders/steam) or a small OpenID client. The integration cost of porting this bundle exceeds writing the adapter, and you avoid contaminating the dependency graph with stale Symfony pins.To executives: "Sign in with Steam" is a cheap, well-understood unlock for our gaming-facing features — it lets us verify a user actually controls a Steam account and key our data to their SteamID, which is the foundation for inventory, trading, and entitlement features later. The off-the-shelf option here is a small, MIT-licensed Symfony bundle with essentially no community adoption (10 stars, zero downstream dependents), which means we'd inherit full maintenance and security responsibility anyway. Recommendation: treat it as a reference design and implement the authentication flow in-house — roughly a 1–2 day engineering task — so we avoid an unmaintained dependency in a security-sensitive path while shipping on the same timeline. Treat the Steam Web API integration (inventory, profiles) as separate, later work.
To engineering: The scope is narrow. Steam uses OpenID 2.0 — a redirect out with checkid_setup, a verification round-trip with check_authentication requiring is_valid:true, and strict extraction of the SteamID64 from openid.claimed_id (regex-anchored to steamcommunity.com/openid/id/<17 digits>). This bundle is Symfony-specific (bundle-era conventions, likely Symfony 2/3), so on Laravel it is a port, not an install — realistically an extraction of ~40–60 lines into a SteamAuthService plus a controller, with the Steam endpoints kept config-driven. Compare against a maintained Socialite Steam provider on evidence, not on this package's existence. Plan to own the code: pin dependencies, vendor rather than track a moving target, and add tests around signature verification, return_to/realm binding, and replay protection. Ship behind a feature flag with a non-Steam fallback path, and treat the security review — replay, return_to tampering, session fixation, account-linking collisions — as a release gate, not a cleanup task.
How can I help you explore Laravel packages today?