Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Steam Authentication Bundle

Steam Authentication Bundle Laravel Package

knojector/steam-authentication-bundle

A Symfony bundle for authenticating users through Steam OpenID. It simplifies adding Steam login to Symfony applications, handling the authentication flow so you can integrate Steam-based sign-in with minimal configuration.

View on GitHub
Deep Wiki
Context7

Symfony Bundle to integrate Steam authentication

Frequently asked questions about Steam Authentication Bundle
Can I install knojector/steam-authentication-bundle in a Laravel application?
No. Despite being listed among PHP packages for Laravel, this is a Symfony Bundle: it subclasses Bundle, ships a DI extension and config tree, and wires into Symfony's security firewall and authenticator system. Laravel's PackageManifest and service-provider boot cycle will not boot it, and Laravel's guards are not Symfony authenticators. A composer require into a Laravel app is a plan to fail, so treat it as a reference implementation to read rather than a dependency to install.
What does the bundle actually do for Steam authentication?
It implements the Steam OpenID 2.0 handshake end to end: it builds the redirect to Steam, handles the callback, validates the OpenID assertion, and returns a verified SteamID64. It also provides a Symfony authenticator plus a user provider hook so you can map Steam accounts to your own user records. The genuinely reusable logic is small, roughly 100 to 200 lines of URL construction, assertion validation, and SteamID64 extraction.
What is the recommended way to add Steam login to Laravel?
Use laravel/socialite together with socialiteproviders/steam. Socialite::driver('steam')->user() yields a SocialiteUser, and you persist the SteamID64 on a social_accounts pivot table. That path takes roughly half a day to wire, keeps the dependency surface inside a maintained ecosystem, and avoids Symfony-vs-Laravel component conflicts. It is the default recommendation for a greenfield Laravel build.
Does the bundle verify the OpenID signature server-side, or does it trust the claimed_id parameter?
That is the single most important question for your evaluation spike, and it must be answered before any adoption decision. If the implementation trusts the claimed_id query parameter instead of performing server-side signature verification against Steam, it is an account-takeover vulnerability and a hard stop. You should also confirm replay protection via response_nonce and assoc_handle invalidation, plus strict return_to matching.
How should I store a SteamID64 in my database and frontend?
Store it as CHAR(17) or BIGINT UNSIGNED in the database. Never expose it as a JavaScript-facing number, because 64-bit Steam IDs exceed JavaScript's Number.MAX_SAFE_INTEGER and will silently corrupt in the browser. Serialize it as a string in JSON responses and API payloads. Decide this schema detail before writing code, since it affects both storage and every client that consumes the ID.
Will the bundle's Symfony constraints conflict with Laravel's pinned components?
Very likely, yes. Laravel pins specific versions of symfony/http-foundation, symfony/http-kernel, symfony/routing, and symfony/console, and this bundle declares its own symfony/* constraints that may not resolve against those pins. Run composer require --dry-run against the bundle on a scratch branch first to see the real conflict output. If you fork the protocol logic instead, you own the constraint surface and the problem disappears.
Is Steam OpenID 2.0 deprecated, and does that affect long-term maintenance?
OpenID 2.0 is a deprecated specification and Steam has not announced an OAuth2 migration, so any implementation is effectively a permanent compatibility shim. That does not block adoption, but it means you should isolate the handshake behind a small interface so a future protocol change touches one class. It also argues for keeping the surface area minimal rather than adopting a large framework-specific wrapper.
Is this package safe to use in production given it has no stars or dependents?
Authentication is the highest-blast-radius path in any product, so an unproven auth dependency inverts normal risk calculus. Zero stars, zero dependents, a single maintainer, and no evidence of a security disclosure process means there is no production telemetry and no third-party review to lean on. The code may be perfectly fine, but provenance risk is high; a fork that you own and test is the safer way to reuse it.
How much work is it to extract the Steam OpenID validator into a Laravel package?
Plan on a one to two day spike, or three to five days for a fork, port, and test suite. Extract a framework-agnostic SteamOpenIdValidator with an injected HTTP client, keep the redirect builder, and delete the Symfony bundle class, DI extension, config tree, and firewall factory. Bind the validator in a SteamAuthServiceProvider, expose GET /auth/steam and GET /auth/steam/callback routes, and have the callback call Auth::login().
What happens if a SteamID64 arrives that is already linked to another local user, and can the validator be tested without hitting Steam?
That account-linking decision is a product-level schema question: link silently, prompt the user to confirm, or reject for existing email-based accounts. Decide it before writing the callback, because it determines your unique indexes and error states. On testability, check whether the validator can run against a mocked Steam endpoint or hard-depends on live HTTP; an injectable HTTP client is the difference between a fast unit test suite and flaky integration tests.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle