Authdog

Overview

Last updated Aug 15, 2026
View as Markdown

Connectors are the external identity providers your users sign in with — Apple, Google, Meta, Microsoft, GitHub, and sixty more. Authdog handles the OAuth 2.0 exchange, normalizes the profile it gets back, and links it to an Authdog user, so your application only ever deals with an Authdog session.

Every connector is configured per environment. Development, staging, and production each hold their own client credentials and their own callback URL, and enabling a provider in one environment never affects another.

How a connector works

  1. A user picks the provider on your sign-in page (hosted or your own UI).
  2. Authdog redirects to the provider's authorization endpoint with the client ID and scopes for that connection.
  3. The user authenticates and consents at the provider.
  4. The provider redirects back to Authdog's callback URL with an authorization code.
  5. Authdog exchanges the code for tokens, reads the profile, and creates or links the Authdog user.
  6. Your application receives an Authdog session, exactly as it would after a password or passkey sign-in.

Your code never handles the provider's tokens. It reads the Authdog session, and provider identity arrives as a linked identity on the user.

Set up any connector

The steps are the same for every provider. Only the developer console you visit and the fields you copy differ.

  1. Create an OAuth application in the provider's developer console.
  2. Copy the redirect URI Authdog shows you into that application's list of allowed redirect URIs.
  3. Paste the provider's client ID and client secret into Authdog.
  4. Activate the connection and test a sign-in.

In the Authdog console:

  1. Select the project and environment.
  2. Open Authentication > Providers.
  3. Filter to OAuth 2.0 and find the provider in the catalog.
  4. Click Enable.
  5. Copy the Redirect URI shown in the form.
  6. Enter the provider's credentials.
  7. Save, then toggle the connection active.

The redirect URI

Authdog's callback endpoint is bound to the individual connection, not to the provider:

https://identity.authdog.com/api/v1/callback/<connectionId>

The connection form displays the exact string with a copy button — use that value rather than assembling it by hand. Three things change it:

Situation Callback host
Default https://identity.authdog.com
Environment with a live custom domain https://auth.yourdomain.com
Local development http://localhost:3500

Because connectionId is unique per connection, the same provider configured in two environments produces two different redirect URIs. Register both in the provider's application, or create a separate provider application per environment — which is the better practice, since it also keeps credentials separated.

Starting a sign-in

With the hosted sign-in page, every active connection renders as a button automatically. Nothing to wire up.

From your own UI, link to the connection's sign-in endpoint:

https://identity.authdog.com/api/v1/signin/<connectionId>

You can pass login_hint to pre-fill the account, and the endpoint honors the sign-up and return-URL context Authdog carries through the flow.

Provider guides

Every connector in the console catalog has its own guide — linked from the cards at the foot of this page and from the sidebar. They share the redirect-URI step above; each guide covers where the credentials come from and what the provider actually returns.

The provider ID is what the connection row stores, and what the console shows on the connection:

Connector Provider ID Connector Provider ID
Apple apple-oauth20 Figma figma-oauth20
Google google-oauth20 Fitbit fitbit-oauth20
Meta (Facebook) facebook-oauth20 FreshBooks freshbooks-oauth20
Microsoft microsoft-oauth20 Hugging Face huggingface-oauth20
GitHub github-oauth20 IBMid ibmid-oauth20
GitLab gitlab-oauth20 ID.me idme-oauth20
LinkedIn linkedin-oauth20 ID.me Community idme-community-oauth20
Discord discord-oauth20 IDPartner idpartner-oauth20
Slack slack-oauth20 Indeed indeed-oauth20
X (Twitter) twitter-oauth20 Intuit intuit-oauth20
TikTok tiktok-oauth20 Kakao kakao-oauth20
Spotify spotify-oauth20 Keycloak keycloak-oauth20
Twitch twitch-oauth20 Klarna klarna-oauth20
Amazon amazon-oauth20 LINE line-oauth20
Asignio asignio-oauth20 NAVER naver-oauth20
AWS Cognito aws-cognito-oauth20 PayPal paypal-oauth20
Badge badge-oauth20 PayPal Sandbox paypal_sb-oauth20
Baidu baidu-oauth20 Planning Center planning-center-oauth20
Basecamp basecamp-oauth20 Renren renren-oauth20
BitBadges bitbadges-oauth20 Salesforce salesforce-oauth20
Bitbucket bitbucket-oauth20 Salesforce Sandbox salesforce_sb-oauth20
1Kosmos BlockID blockid-oauth20 Salesforce Community salesforce_community-oauth20
Box box-oauth20 Shopify shopify-oauth20
Coinbase coinbase-oauth20 Vercel vercel-oauth20
d ACCOUNT daccount-oauth20 Vimeo vimeo-oauth20
DigitalOcean digitalocean-oauth20 VKontakte vk-oauth20
Dock Web3 ID dock-web3id-oauth20 Weibo weibo-oauth20
DocuSign docusign-oauth20 WordPress.com wordpress-oauth20
Dribbble dribbble-oauth20 Xero xero-oauth20
Dropbox dropbox-oauth20 Yahoo yahoo-oauth20
Dwolla dwolla-oauth20 Yammer yammer-oauth20
Exact Online exact-oauth20 Yandex yandex-oauth20

Connectors that need a Domain URI

Some providers run on a host that belongs to you or your customer rather than a fixed one, so the connection form asks for a Domain URI alongside the credentials: a Cognito user pool domain, a Shopify store, a Keycloak realm, a Salesforce Experience Cloud site, or a Klarna regional login host.

Authdog substitutes that value into the provider's endpoints for AWS Cognito, Salesforce Community, Shopify, Klarna, and Keycloak. Other catalog entries that accept the field — Exact Online, 1Kosmos BlockID, Asignio, Badge, BitBadges, Dock Web3 ID, and IDPartner — are not covered by that substitution on both legs of the flow, so test them end to end in a development environment before rolling them out.

Account linking

When a provider returns an email address that already belongs to an Authdog user, the provider identity links to that account rather than creating a second one. Providers that do not release an email — or where the user hides it, as with Apple's private relay — produce an account keyed on the provider's stable subject identifier.

Decide early which providers you trust to assert an email, and keep that consistent across environments. See Users for how identities appear on the user record.

Read To learn how to
Authentication (console) Configure every sign-in method for an environment
Enterprise SSO Connect workforce identity providers with SAML and OIDC
Custom domains Serve authentication — and callbacks — from your own host
Branding Style the hosted page these buttons appear on
Users Inspect linked identities on a user record

Every connector

Each guide covers where the credentials come from and what the provider returns.

AppleSign in with Apple, using a Services ID and a signing key.GoogleGoogle accounts, with a verified email on every sign-in.Meta (Facebook)Facebook Login, including users who release no email address.MicrosoftPersonal Microsoft accounts and Entra ID work accounts.GitHubThe default developer identity, via an OAuth App.GitLabGitLab.com sign-in over OpenID Connect.LinkedInProfessional identity for B2B sign-up pages.DiscordCommunity and gaming identity keyed on the snowflake ID.SlackWorkspace-scoped sign-in for internal and B2B tools.X (Twitter)X accounts — no email address is released.TikTokLogin Kit sign-in, gated behind TikTok's app review.SpotifyListener identity with email and subscription level.TwitchStreamer and viewer identity via the Helix API.AmazonLogin with Amazon, scoped to a security profile.AsignioPasswordless biometric signature authentication.AWS CognitoSign in against an existing Amazon Cognito user pool.BadgeDevice-independent keys with no credential stored at rest.BaiduMainstream consumer identity in mainland China.Basecamp37signals Launchpad identity for Basecamp integrations.BitBadgesBlockchain-backed identity with on-chain badge holdings.BitbucketAtlassian-hosted developer identity via an OAuth consumer.1Kosmos BlockIDDocument and biometric identity proofing, passwordless.BoxEnterprise content identity, subject to admin authorization.CoinbaseCrypto account identity with a verified email address.d ACCOUNTNTT Docomo's consumer identity in Japan.DigitalOceanInfrastructure identity for deployment and ops tooling.Dock Web3 IDDecentralized identity backed by verifiable credentials.DocuSignEnvelope-sending identity, with consent granted per account.DribbbleDesign community identity for portfolio and hiring tools.DropboxFile-platform identity, capped until the app leaves development.DwollaPayments identity for products that also move money.Exact OnlineRegional business accounts, selected by a domain URI.FigmaDesign-tool identity for plugins and companion apps.FitbitWellness identity — no email address is released.FreshBooksInvoicing identity spanning several businesses per user.Hugging FaceHub identity for ML tooling, models, and Spaces.IBMidIBM Cloud identity, registered through IBM rather than self-serve.ID.meIdentity verification with attested group membership.ID.me CommunityID.me plus the community scope for group-gated access.IDPartnerBank-verified identity for KYC-grade onboarding.IndeedCandidate identity for recruiting and job-board products.IntuitQuickBooks identity, with separate dev and production keys.KakaoKorean consumer identity; email needs an approved consent item.KeycloakSelf-hosted realm sign-in against your own Keycloak server.KlarnaKlarna accounts, with a region-specific login host.LINEMessaging identity across Japan, Taiwan, and Thailand.NAVERKorean consumer identity with per-field profile consent.PayPalLog in with PayPal against live buyer accounts.PayPal SandboxThe PayPal connector pointed at sandbox accounts.Planning CenterOrganization-scoped identity for church management tools.RenrenChinese social identity with no email address.SalesforceProduction org sign-in through a connected app.Salesforce SandboxThe Salesforce connector pointed at a sandbox org.Salesforce CommunityExperience Cloud sign-in for customers and partners.ShopifyMerchant and staff sign-in scoped to one store.VercelDeployment identity for integrations and dashboards.VimeoVideo-platform identity for creator tooling.VKontakteConsumer social identity in Russian-speaking markets.WeiboSina Weibo accounts, keyed on the numeric uid.WordPress.comWordPress.com and Jetpack-connected site owners.XeroAccounting identity, separate from the organizations it can reach.YahooLong-lived consumer email identity; HTTPS redirects only.YammerLegacy Microsoft enterprise social identity.YandexYandex accounts with login info and email scopes.