Skip to content
Deployment
Skill

/socialite-development

Manages OAuth social authentication with Laravel Socialite. Activate when adding social login providers; configuring OAuth redirect/callback flows; retrieving authenticated user details; customizing scopes or parameters; setting up community providers; testing with Socialite

From plugin
coolify
66k10 skills1 MCP

Claude Code

$ npx -y skills add coollabsio/coolify --skill socialite-development --agent claude-code

SKILL.md

socialite-development.SKILL.md
name: socialite-development
description: "Manages OAuth social authentication with Laravel Socialite. Activate when adding social login providers; configuring OAuth redirect/callback flows; retrieving authenticated user details; customizing scopes or parameters; setting up community providers; testing with Socialite fakes; or when the user mentions social login, OAuth, Socialite, or third-party authentication."
license: MIT
metadata:
  author: laravel

Socialite Authentication

Documentation

Use `search-docs` for detailed Socialite patterns and documentation (installation, configuration, routing, callbacks, testing, scopes, stateless auth).

Available Providers

Built-in: `facebook`, `twitter`, `twitter-oauth-2`, `linkedin`, `linkedin-openid`, `google`, `github`, `gitlab`, `bitbucket`, `slack`, `slack-openid`, `twitch`

Community: 150+ additional providers at [socialiteproviders.com](https://socialiteproviders.com). For provider-specific setup, use `WebFetch` on `https://socialiteproviders.com/{provider-name}`.

Configuration key in `config/services.php` must match the driver name exactly — note the hyphenated keys: `twitter-oauth-2`, `linkedin-openid`, `slack-openid`.

Twitter/X: Use `twitter-oauth-2` (OAuth 2.0) for new projects. The legacy `twitter` driver is OAuth 1.0. Driver names remain unchanged despite the platform rebrand.

Community providers differ from built-in providers in the following ways:

  • Installed via `composer require socialiteproviders/{name}`
  • Must register via event listener — NOT auto-discovered like built-in providers
  • Use `search-docs` for the registration pattern

Adding a Provider

1. Configure the provider

Add the provider's `client_id`, `client_secret`, and `redirect` to `config/services.php`. The config key must match the driver name exactly.

2. Create redirect and callback routes

Two routes are needed: one that calls `Socialite::driver('provider')->redirect()` to send the user to the OAuth provider, and one that calls `Socialite::driver('provider')->user()` to receive the callback and retrieve user details.

3. Authenticate and store the user

In the callback, use `updateOrCreate` to find or create a user record from the provider's response (`id`, `name`, `email`, `token`, `refreshToken`), then call `Auth::login()`.

4. Customize the redirect (optional)

  • `scopes()` — merge additional scopes with the provider's defaults
  • `setScopes()` — replace all scopes entirely
  • `with()` — pass optional parameters (e.g., `['hd' => 'example.com']` for Google)
  • `asBotUser()` — Slack only; generates a bot token (`xoxb-`) instead of a user token (`xoxp-`). Must be called before both `redirect()` and `user()`. Only the `token` property will be hydrated on the user object.
  • `stateless()` — for API/SPA contexts where session state is not maintained

5. Verify

1. Config key matches driver name exactly (check the list above for hyphenated names) 2. `client_id`, `client_secret`, and `redirect` are all present 3. Redirect URL matches what is registered in the provider's OAuth dashboard 4. Callback route handles denied grants (when user declines authorization)

Use `search-docs` for complete code examples of each step.

Additional Features

Use `search-docs` for usage details on: `enablePKCE()`, `userFromToken($token)`, `userFromTokenAndSecret($token, $secret)` (OAuth 1.0), retrieving user details.

User object: `getId()`, `getName()`, `getEmail()`, `getAvatar()`, `getNickname()`, `token`, `refreshToken`, `expiresIn`, `approvedScopes`

Testing

Socialite provides `Socialite::fake()` for testing redirects and callbacks. Use `search-docs` for faking redirects, callback user data, custom token properties, and assertion methods.

Common Pitfalls

  • Config key must match driver name exactly — hyphenated drivers need hyphenated keys (`linkedin-openid`, `slack-openid`, `twitter-oauth-2`). Mismatch silently fails.
  • Every provider needs `client_id`, `client_secret`, and `redirect` in `config/services.php`. Missing any one causes cryptic errors.
  • `scopes()` merges with defaults; `setScopes()` replaces all scopes entirely.
  • Missing `stateless()` in API/SPA contexts causes `InvalidStateException`.
  • Redirect URL in `config/services.php` must exactly match the provider's OAuth dashboard (including trailing slashes and protocol).
  • Do not pass `state`, `response_type`, `client_id`, `redirect_uri`, or `scope` via `with()` — these are reserved.
  • Community providers require event listener registration via `SocialiteWasCalled`.
  • `user()` throws when the user declines authorization. Always handle denied grants.
Read more
@coollabsio
Ships withcoolify

An open-source platform to deploy applications, databases, and services on your own servers. Open source & free forever, backed by our philosophy. ![Latest Release Version]( )

66k10 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
65.5k
Star history of coollabsio/coolify on GitHub, a chart by star-history.com

Other skills on coolify.

configuring-horizon

configuring-horizon

Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing…

@coollabsio@coollabsioInstall Skill
fortify-development

fortify-development

ACTIVATE when the user works on authentication in Laravel. This includes login, registration, password reset, email verification,…

@coollabsio@coollabsioInstall Skill
infer-conventions

infer-conventions

Use this skill to analyze how a Laravel application is actually written and record its conventions as shared rules. Trigger when…

@coollabsio@coollabsioInstall Skill
laravel-actions

laravel-actions

Build, refactor, and troubleshoot Laravel Actions using lorisleiva/laravel-actions. Use when implementing reusable action classes…

@coollabsio@coollabsioInstall Skill
laravel-best-practices

laravel-best-practices

Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers,…

@coollabsio@coollabsioInstall Skill
livewire-development

livewire-development

Use for any task or question involving Livewire. Activate if user mentions Livewire, wire: directives, or Livewire-specific…

@coollabsio@coollabsioInstall Skill

More skills from other plugins.

vercel-cli

vercel-cli

Guides deployment, configuration, and troubleshooting with the Vercel CLI. Use when operating Vercel projects or resources…

vercel11d16k
@vercel@vercelInstall Skill
skypilot

skypilot

Use when launching cloud VMs, Kubernetes pods, or Slurm jobs for GPU/TPU/CPU workloads, training or fine-tuning models on cloud…

@skypilot-org@skypilot-orgInstall Skill
pinme

pinme

Use this skill when the user mentions "pinme", or needs to upload files, store to IPFS, create/publish/deploy websites or…

pinme8w3.8k
@glitternetwork@glitternetworkInstall Skill
mlx-serve

mlx-serve

Hook an app, game or script up to the local mlx-serve server for LLM chat, embeddings, image, speech, music, sound effect, video…

mlx-serve11d2.2k
@ddalcu@ddalcuInstall Skill

Questions about socialite-development.

Which coding agents can use socialite-development?
socialite-development installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.