Social / OAuth sign-in
Sign in with configured identity providers (Google, GitHub, …) rendered as a button row or a prominent grid.
Provision the backend
Provision the auth:sso preset onto your database — it installs the database modules this flow needs (listed under Backend below).
bash
# auth:sso adds connected_accounts_module + identity_providers_module (see Backend below).
pgpm installInstall the blocks
Requires the one-time host setup — the @constructive registry namespace mapped in your components.json.
bash
npx shadcn@latest add @constructive/auth-social-buttons @constructive/auth-social-providers-gridWire them up
Mount the runtime once at the app root so every block resolves its hook.
tsx
import { AuthSocialButtons } from '@/blocks/auth/social-buttons/social-buttons';
// Omit `providers` to load enabled providers from the identity-providers API at runtime.
<AuthSocialButtons mode="sign-in" layout="stacked" />Usage
A representative usage of this flow.
tsx
import { AuthSocialProvidersGrid } from '@/blocks/auth/social-providers-grid/social-providers-grid';
export function SignInExtras() {
return <AuthSocialProvidersGrid mode="sign-in" returnTo="/dashboard" />;
}Built with auth-social-buttons, auth-social-providers-grid.
Backend
Provision the auth:sso preset — it installs these database modules (scoped modules shown as name:scope):
users_modulemembership_types_modulepermissions_module:applimits_module:applevels_module:appmemberships_module:appsessions_moduleuser_state_moduleuser_credentials_moduleconfig_secrets_moduleemails_modulerls_moduleuser_auth_moduleconnected_accounts_moduleidentity_providers_module
GraphQL operations this flow makes live: identityProviders, signInIdentity, signUpIdentity