Sign in with Instagram
:::warning Read first Instagram is not a first-class Curupira provider, and today it generally cannot complete a login. For Meta-family sign-in, use Meta / Facebook instead — Facebook Login returns a usable, confirmed email. :::
Why it's a special case
- No email → login refused. Curupira provisions and links accounts by verified email. Instagram Login does not return an email for normal accounts, so Curupira can't auto-provision a new user or match an existing one — the login is refused at the email gate. This is on Instagram's side, not Curupira's.
- Shifting OAuth surface. Instagram Basic Display was deprecated (2024-12-04). The replacement (Instagram API with Instagram Login, for Business/Creator accounts via the Meta app dashboard) has a different token/userinfo shape and still gives no reliable email. Because of that churn, Instagram is not a built-in provider and does not appear in the dashboard dropdown.
Bottom line: unless a user's Instagram profile actually returns an email (uncommon), the button appears but the login fails on the email gate — by design.
Experimental wiring (API only)
Only proceed if you specifically need Instagram and accept the email caveat above. Because
instagram has no built-in endpoints, you supply them yourself in the connection's extra_config,
and you must create the connection via the admin API (the dashboard dropdown can't select it):
-
In the Meta App Dashboard (developers.facebook.com/apps), add the Instagram product / Instagram API with Instagram Login, and register the redirect
https://auth.curupira.api.br/sso/instagram/callback. You'll get an Instagram App ID + App Secret (same Business Verification / App Review burden as Meta). -
Create the connection via the admin API, supplying the endpoints in
extra_config:curl -X POST https://admin.curupira.api.br/api/admin/sso-connections \-H 'Content-Type: application/json' -b cookies.txt \-d '{"tenant_id": "<tenant-uuid>","provider": "instagram","client_id": "<instagram-app-id>","client_secret": "<instagram-app-secret>","scopes": ["instagram_business_basic"],"enabled": true,"extra_config": {"authorize_url": "https://www.instagram.com/oauth/authorize","token_url": "https://api.instagram.com/oauth/access_token","userinfo_url": "https://graph.instagram.com/me?fields=id,username"}}'The exact URLs/scopes/
fieldsdepend on which Instagram product you enabled — confirm them against Meta's current Instagram-login docs before saving.extra_configendpoint URLs are validated (public HTTPS only) on create/update. -
Once saved and enabled, the login page renders a "Continue with Instagram" button, but it will still fail for any user whose Instagram doesn't return an email — expected.
If you'd like Instagram as a proper one-click provider, that requires a product decision about emailless accounts — contact your Curupira administrator.
Checklist (experimental)
- Understood: Instagram usually returns no email → login refused by design
- Considered Meta / Facebook instead (recommended)
- Instagram product added in the Meta app; redirect registered
- Connection created via admin API with
extra_configURLs (not the dropdown) - Verified the URLs/scopes against Meta's current Instagram-login docs