Social Login
Social login lets users sign in with an existing account from an external identity provider such as Google, GitHub, or Microsoft. LumoAuth handles the OAuth/OIDC handshake with the provider, creates or links a local user account, and then issues its own tokens to your application. This reduces registration friction and improves conversion.
Supported Providers
| Provider | Protocol | Data Returned |
|---|---|---|
| OAuth 2.0 / OIDC | Email, profile, avatar | |
| GitHub | OAuth 2.0 | Email, profile, organization membership |
| Microsoft | OAuth 2.0 / OIDC | Email, profile, Azure AD integration |
| OAuth 2.0 | Email, profile, friends list | |
| Apple | OAuth 2.0 / OIDC | Email (private relay), name |
| OAuth 2.0 | Email, profile, professional info | |
| Custom OIDC | OpenID Connect | Any OIDC-compliant provider |
How It Works
- User clicks a social login button on your login page.
- Redirect to provider. LumoAuth redirects to the provider's authorization page.
- User authenticates at the provider.
- Provider callback. The provider redirects back to LumoAuth with an authorization code.
- Account linking. LumoAuth creates or links a local user account.
- Token issuance. LumoAuth issues its own OAuth tokens to your application.
Account Linking Behavior
When a user authenticates via social login:
- New user: a LumoAuth user account is automatically created (JIT provisioning).
- Existing user (same email): the social account is linked to the existing user.
- Multiple social accounts: a user can link multiple social providers to one account.
Configuration
Organization-Level Social Login
Configure social login providers per organization at:
/orgs/{orgId}/portal/configuration/social-login
For each provider, you will need:
- Client ID — from the provider's developer console.
- Client Secret — from the provider's developer console.
- Scopes — what data to request (email, profile, etc.).
Per-Application Social Login
You can also configure social login on a per-application basis at:
/orgs/{orgId}/portal/applications/{clientId}/social-login
This lets different OAuth clients within the same organization show different social login buttons.
Setting Up Google Login
1. Create Google OAuth Credentials
- Go to the Google Cloud Console.
- Create a new project or select an existing one.
- Navigate to APIs & Services → Credentials.
- Click Create Credentials → OAuth client ID.
- Select Web application.
- Add the authorized redirect URI:
https://your-domain.com/orgs/{orgId}/auth/social/google/callback
- Copy the Client ID and Client Secret.
2. Configure in LumoAuth
- Go to
/orgs/{orgId}/portal/configuration/social-login. - Click Add Provider → Google.
- Enter the Client ID and Client Secret.
- Save and Enable.
Setting Up GitHub Login
1. Create GitHub OAuth App
- Go to GitHub Developer Settings.
- Click New OAuth App.
- Set the authorization callback URL:
https://your-domain.com/orgs/{orgId}/auth/social/github/callback
- Copy the Client ID and Client Secret.
2. Configure in LumoAuth
- Go to
/orgs/{orgId}/portal/configuration/social-login. - Click Add Provider → GitHub.
- Enter credentials and save.
Setting Up Microsoft Login
1. Register in Azure AD
- Go to the Azure Portal → App registrations.
- Click New registration.
- Add the redirect URI:
https://your-domain.com/orgs/{orgId}/auth/social/microsoft/callback
- Under Certificates & secrets, create a new client secret.
- Note the Application (client) ID and Client Secret.
2. Configure in LumoAuth
- Go to
/orgs/{orgId}/portal/configuration/social-login. - Click Add Provider → Microsoft.
- Enter credentials and save.
Social Login URLs
Each social provider has organization-specific authentication URLs:
Initiate: /orgs/{orgId}/auth/social/{provider}
Callback: /orgs/{orgId}/auth/social/{provider}/callback
Where {provider} is: google, github, microsoft, facebook, apple, linkedin.
User Experience
When social login is enabled, the login page displays:
- Social login buttons — one button per enabled provider.
- Email/password form — standard credential login (if enabled).
- Separator — visual "or" divider between social and credential login.
Users who sign up via social login can later:
- Set a password (for email/password login as well).
- Link additional social accounts.
- Remove linked social accounts (from the account settings page).
Account Settings
Users can manage their linked social accounts at the account settings page:
/account/security
From here they can:
- View all linked social accounts.
- Link new social providers.
- Unlink social providers (if they have another login method).
Just-In-Time (JIT) Provisioning
When a user authenticates via social login for the first time, LumoAuth automatically:
- Creates a new user account in the organization.
- Populates the user profile with data from the social provider.
- Links the social account to the new user.
- Optionally assigns default roles (configurable per organization).
If a user with the same email already exists, the social account is linked to the existing user instead of creating a duplicate.
Security Considerations
- State parameter. LumoAuth uses the OAuth
stateparameter to prevent CSRF attacks. - PKCE. When supported by the provider, PKCE is used for additional security.
- Token storage. Social provider tokens are encrypted in the database.
- Scope minimization. Only request the minimum scopes needed.
Related Guides
- Authentication Overview — all authentication methods
- Enterprise SSO — SAML and OIDC for corporate IdPs
- Multi-Factor Authentication — add MFA on top of social login