Skip to Content

Figma Social Login

The Figma social connection (type figma) lets users sign in with their Figma account — useful for design tools and plugins with a web companion. Bring your own app — there is no shared Faable app for Figma, so you create one in Figma’s developer settings.

Faable sends users to https://www.figma.com/oauth, exchanges the code at https://www.figma.com/api/oauth/token, and reads the profile from https://api.figma.com/v1/me.

Prerequisites

  • A Figma account.
  • Your Faable Auth domain ({YOUR_FAABLEAUTH_NAME}.auth.faable.link or your custom domain).

Find your redirect URI

In the Faable Dashboard, go to Auth → Connections → Create → Social and pick Figma. Copy the Callback URL shown in the form — it is https://{YOUR_DOMAIN}/callback. With a custom domain both hosts are listed; register both if your apps start logins on either.

Register the app with Figma

  1. In Figma’s developer settings , open My apps and create a new app.
  2. Add the Callback URL under Callback URLs (or Redirect URLs).
  3. Choose the scopes the app may request. For login, the user-profile scope (current_user:read) is enough.
  4. Copy the Client ID and Client secret.

Create the connection in Faable Auth

FieldValue to Provide
NameAn identifier such as figma. Shown in the dashboard and logs.
Client IDThe Figma Client ID.
Client secretThe Figma Client secret.
ScopesComma-separated. Required — see below.
EnabledOn to offer it on the login screen right away.

The endpoints are preconfigured; you don’t enter them.

Scopes

Faable stores no default scope for Figma: set the scope your Figma app is configured for. For login that is current_user:read. Figma’s scope names have changed over time, so check Figma’s current scopes  and keep the connection in sync with the app.

User profile mapping

Faable user fieldSource on the /v1/me responseNotes
ididFigma user id.
namehandle
emailemail
pictureimg_url
email_verified—Not attested — Figma doesn’t say.

Identities are keyed by the Figma id plus the connection, never by email. Figma doesn’t vouch for the address, so the user is created with email_verified: false and can go through Faable’s own email verification. A Figma login never merges into an existing account that happens to have the same email — it is a separate user.

Trigger a login

Pass connection=<connection id or name> on /authorize to skip the login screen:

https://{YOUR_DOMAIN}/authorize?client_id={YOUR_CLIENT_ID}&response_type=code&redirect_uri={YOUR_APP_CALLBACK}&scope=openid%20profile%20email&state={RANDOM_STATE}&connection=figma

Without connection, Figma appears as an option on the hosted login screen.

Troubleshooting

SymptomLikely cause
Invalid redirect URI on FigmaThe Callback URL isn’t registered on the Figma app.
Invalid scopes on FigmaThe connection’s scope is empty or isn’t one the Figma app is allowed to request.
Cannot fetch accessTokenClient ID / Client secret mismatch.

Last updated on