What is Limited Login?
Limited Login provides a way for iOS users who have opted out of App Tracking Transparency to still use Facebook Login. Instead of receiving an Access Token, your app receives an Authentication Token (OpenID Connect token) that can verify the user’s identity but cannot access the Graph API.Limited Login is iOS only and was introduced in facebook-ios-sdk v17.0.0. React Native FBSDK Next versions 13.0.0 and above require Limited Login support.
When Limited Login is Used
Limited Login is automatically triggered in these scenarios:- User denies ATT permission - When the user opts out of tracking
- App doesn’t request ATT - If your app doesn’t request tracking permission
- iOS 14.5 and above - When ATT enforcement is active
Authentication Token vs Access Token
Implementing Limited Login
Using LoginButton
Using LoginManager
Working with Authentication Tokens
Getting the Current Token
Token Structure
An Authentication Token contains:Server-Side Token Validation
Authentication Tokens must be validated on your server. Here’s how:Step 1: Send Token to Server
Step 2: Validate on Server
On your server, validate the token using Facebook’s API:Custom Nonce
A nonce is a unique string used to prevent replay attacks. You can provide your own:If you don’t provide a nonce, the SDK generates a unique one automatically.
Limitations of Limited Login
Cannot Use Graph API
The biggest limitation is that Authentication Tokens cannot be used to make Graph API requests:Limited User Data
You can only get:- User ID (from token validation)
- Email (if granted and validated server-side)
- Basic profile info (through token claims)
- Friends list
- Photos
- Posts
- Detailed profile information
- Any Graph API data
Alternative: Use Profile API
For basic user info, use the Profile API instead:The Profile API works with both Limited Login and traditional login, but provides limited data with Limited Login.
Requesting ATT Permission
To enable traditional login, request App Tracking Transparency permission:Add to Info.plist
Don’t forget to add the tracking description to yourInfo.plist:
Handling Both Login Types
Create a unified login flow that handles both token types:Best Practices
1. Always Validate Server-Side
2. Handle Both Token Types
Your app should gracefully handle both Access Tokens and Authentication Tokens:3. Inform Users About Limitations
If your app heavily relies on Graph API features, inform users when Limited Login is used:4. Provide Alternative Authentication
Offer other login methods for users who need full functionality:- Email/Password login
- Google Sign-In
- Apple Sign In
- Phone authentication
Testing Limited Login
To test Limited Login in development:- Deny ATT permission when prompted
- Reset ATT permission: Settings > Privacy > Tracking > Reset
- Use Simulator with ATT disabled
- Test both flows to ensure your app handles both token types
See Also
Authentication
Learn about access tokens and authentication tokens
Login Methods
Different ways to implement Facebook Login
Authentication Token API
Complete API reference for AuthenticationToken
Profile API
Get user profile information