> ## Documentation Index
> Fetch the complete documentation index at: https://vlyai-1c28d863.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth providers

> Sign in with Google, GitHub, Microsoft, Discord, Apple, and more. Toggle on in workspace settings.

vly's built-in auth supports OAuth via every major provider. Each provider takes about 5 minutes to set up: register a client app at the provider, paste credentials into vly.

## Supported providers

<CardGroup cols={3}>
  <Card title="Google" icon="chrome">
    Google Cloud Console → OAuth 2.0 Client IDs.
  </Card>

  <Card title="GitHub" icon="github">
    GitHub Settings → Developer settings → OAuth Apps.
  </Card>

  <Card title="Microsoft" icon="square">
    Azure Portal → App registrations.
  </Card>

  <Card title="Discord" icon="message-circle">
    Discord Developer Portal → Applications.
  </Card>

  <Card title="Apple" icon="apple">
    Apple Developer → Sign in with Apple.
  </Card>

  <Card title="Linkedin" icon="linkedin">
    LinkedIn Developer Portal.
  </Card>
</CardGroup>

For SSO via SAML / OIDC (enterprise customers), see [SSO](/features/workspace/sso).

## Setup

<Steps>
  <Step title="Register an OAuth app at the provider">
    Each provider has its own dashboard. You'll get a Client ID and Client Secret.
  </Step>

  <Step title="Set the redirect URL">
    `https://your-app.vly.app/api/auth/callback/{provider}` (vly shows the exact URL in the dialog).
  </Step>

  <Step title="Paste credentials into vly">
    **Workspace settings → Auth → Providers → \[provider] → Configure**.
  </Step>

  <Step title="Toggle on">
    The provider button appears on your sign-in / sign-up pages.
  </Step>
</Steps>

## Per-provider gotchas

<AccordionGroup>
  <Accordion title="Google: 'redirect_uri_mismatch'" icon="alert-triangle">
    The exact URL must match what's registered. Include the protocol (`https://`), and don't include trailing slashes if the registration omits them.
  </Accordion>

  <Accordion title="Apple: requires JWT signing" icon="alert-triangle">
    Apple's OAuth uses a JWT signed with a `.p8` key. Upload the key when configuring; vly handles the JWT generation.
  </Accordion>

  <Accordion title="Microsoft: tenant scoping" icon="alert-triangle">
    For "any Microsoft account" use `common`; for "only my org" use the tenant ID. Misconfigured tenant = sign-in fails.
  </Accordion>

  <Accordion title="GitHub: scopes" icon="alert-triangle">
    Default scopes (`user:email`) are usually enough. Add more (`repo`, `read:org`) only if your app needs to call GitHub's API on the user's behalf.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={3}>
  <Card title="Built-in auth" icon="lock" href="/features/auth/built-in-auth">
    The full auth system.
  </Card>

  <Card title="Passwordless" icon="wand" href="/features/auth/passwordless">
    Magic links as an alternative.
  </Card>

  <Card title="OAuth login recipe" icon="key" href="/recipes/oauth-login">
    Step-by-step setup walkthrough.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.