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

Socialite Slack Laravel Package

mpociot/socialite-slack

Slack OAuth provider for Laravel Socialite. Adds a Slack driver so you can authenticate users with their Slack workspace account through Socialite's familiar redirect and callback API, alongside the built-in Google, GitHub, and Facebook providers.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Ship the Slack install flow this sprint — or not. If a roadmap item hinges on a user authorizing your Laravel app against a Slack workspace, this package supplies the OAuth handshake and nothing else. It converts an unknowable "we'd have to build OAuth plumbing" line item into a scoped decision: do we fund the authorization step now? That is a yes at 1–2 engineering days, not a quarter.
  • Build vs. buy vs. copy. At 18 stars, zero dependents, and a last release of August 2017, this is not a "buy." It is a reference implementation to fork or copy. Reframing the decision that way dissolves the dependency-risk argument entirely — the question becomes "do we write ~150 lines of Socialite glue, or start from a working sketch?" — which is cheap and reversible.
  • Slack as a distribution channel, not a feature. For B2B SaaS, "Add to Slack" is a go-to-market question (get our product inside a customer's workspace) wearing an engineering costume. This package answers the enabling sub-question — can we cheaply get a token? — and deliberately says nothing about whether a Slack integration is worth building. Keep those two decisions separate on the roadmap.
  • Scope honesty on the roadmap. Authorization is roughly the first 5% of a Slack integration. No Web API client, no Events API, no slash commands, no granular scopes, no token rotation, no multi-workspace credential management. Present it as a cheap enabler that de-risks the next bet, never as "the Slack integration."
  • Identity linking / secondary sign-in experiments. Because it plugs into Socialite's existing driver shape, Slack can be tested as an account-linking or secondary login path alongside Google/GitHub without inventing a parallel auth subsystem — useful for internal tools and Slack-native products.
  • Cheap-option prioritization. A 1–2 day spike is small enough to fund from discretionary budget and structured enough to return real signal. That is the definition of an option worth buying: bounded downside, information either way.

When to Consider This Package

Consider it — as a fork or copy, not a composer require — when:

  • You are already on Laravel and standardized on Socialite, so Slack is one more Socialite::driver() rather than a new auth subsystem.
  • The scope is genuinely OAuth-only: obtain a token, persist it, done. No message posting, no webhooks, no bot scopes.
  • The use case is human sign-in or account linking, not Slack app installation with bot permissions and a distribution listing.
  • You accept owning the code: vendor it into app/, review it against current Slack OAuth V2 and granular-scope requirements, name an owner, and budget for maintenance.
  • You can absorb the verification cost. Slack's OAuth surface has moved on (OAuth V2, granular scopes, Sign in with Slack / OIDC); expect to edit authorize/token URLs, default scopes, and user-response mapping before it works against a current Slack app.
  • You can run it as a bounded, feature-flagged experiment with a documented exit back to existing auth.

Look elsewhere when:

  • You need anything beyond "get a token." Use Slack's official SDK or a maintained Laravel Slack package for Web API, Events API, and token rotation.
  • You need enterprise-grade auth — SAML/SSO via Slack, multi-workspace token management with rotation. A Socialite driver is the wrong abstraction; this becomes net-new work, not an extension.
  • Your stack isn't Laravel/Socialite. Without the Socialite contract the remaining value is a few dozen lines of Guzzle; write them.
  • Composer constraints block it on modern Laravel/Socialite and nobody will own a fork — then it is a read-only reference.
  • You have a hard policy against unmaintained dependencies with no appetite to fork. Then socialiteproviders/slack or a direct OIDC client is the cheaper path, and this repo is documentation.

How to Pitch It (Stakeholders)

For executives: Slack is a distribution channel, not a feature. Getting "Add to Slack" live is a small, low-cost enabler for a much larger integration effort, and the fiddly part — OAuth authorization — is already solved in a shape that fits our existing Laravel auth stack. The package itself is a thin MIT-licensed adapter last touched in 2017, so the recommendation is to vendor a copy into our codebase rather than depend on it: roughly a day of engineering review, and the maintenance risk disappears. Net: a cheap, reversible way to learn whether Slack distribution deserves real investment. We are buying an option, not adopting a platform.

For engineering: It is a Socialite OAuth2 provider for Slack — register it via Socialite::extend, configure client ID/secret/redirect in config/services.php, and you get the familiar Socialite::driver('slack')->user() shape back, returning Slack ID, name, email, and avatar. Two caveats. First, treat the source as a starting point and diff it against current Slack OAuth V2 and granular-scope requirements before trusting it — the last release predates them, and it expects the legacy users.identity payload rather than V2's authed_user. Second, it stops at token acquisition: token storage, refresh and rotation, composite identity keys (team_id, user_id), and every Web API call are ours. Recommend forking into app/Socialite/ behind an internal SlackAuthService adapter, with a test around the token exchange and contract tests on the OAuth URLs — and no durable composer.json entry.

Recommended next step: Timebox a 1–2 day spike to fork the driver, point it at a sandbox Slack app, and confirm the install flow end to end: authorize URL acceptance, scope match (identity.basic, identity.email, identity.avatar, identity.team), exact redirect URI and state handling, and the user-response shape. If it clears, the decision becomes "we own ~150 lines of OAuth glue" — far easier to approve than "we adopted an eight-year-old dependency with 18 stars." If it fails, we have spent two days learning that a Slack channel bet needs a different foundation, which is itself a valuable roadmap signal.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource