Instagram Social Login
Enable one-click WiFi authentication on your captive portal using Instagram accounts, allowing guests to connect with their social media credentials via Facebook's API.
Overview
Instagram social login provides:
- One-click authentication for guests
- Profile data collection (username, profile info)
- Marketing insights from Instagram users
- Frictionless experience for younger demographics
Prerequisites
- IronWifi account with captive portal configured
- Facebook Developer account (Instagram uses Facebook's API)
- Instagram Basic Display API or Instagram Graph API access
Important Notes
Instagram authentication is managed through Facebook/Meta's platform:
- Instagram API is accessed via Facebook Login
- Requires Facebook Developer account
- Subject to Meta's platform policies
- Limited data access compared to other social providers
Facebook Developer Setup
Create App
- Go to developers.facebook.com
- Click My Apps > Create App
- Select Consumer or Business type
- Enter app details:
- App Name: Your WiFi Portal Name
- Contact Email: Your email
Add Instagram Basic Display
- In your app dashboard
- Click Add Product
- Find Instagram Basic Display and click Set Up
- Configure OAuth settings
Configure Instagram Basic Display
- Go to Instagram Basic Display > Basic Display
- Add Valid OAuth Redirect URIs:
https://auth.ironwifi.com/callback/instagram - Add Deauthorize Callback URL
- Add Data Deletion Request URL
Get Credentials
Note these values:
- Instagram App ID
- Instagram App Secret
IronWifi Configuration
Step 1: Add Instagram Provider
- Log in to IronWifi Console
- Navigate to Networks > Captive Portals
- Select your captive portal
- Go to Authentication Providers
- Click Add Provider > Instagram
Step 2: Configure OAuth
Enter credentials:
- App ID: Your Instagram App ID
- App Secret: Your Instagram App Secret
- Redirect URI: Confirm matches Facebook app config
Step 3: Configure Permissions
Select data to request:
user_profile- Basic profile infouser_media- User's media (optional)
Data Collection
Available Data
Instagram Basic Display API provides:
| Field | Description |
|---|---|
id | Instagram user ID |
username | Instagram username |
account_type | BUSINESS, MEDIA_CREATOR, or PERSONAL |
media_count | Number of posts (if permitted) |
Data Limitations
Instagram limits data access:
- No email address (unlike other providers)
- No follower counts for personal accounts
- Limited profile information
- Subject to rate limits
Authentication Flow
User Experience
- Guest connects to WiFi
- Sees "Continue with Instagram" button
- Clicks and redirects to Instagram
- Logs in (if not already)
- Approves permissions
- Redirected back, access granted
Technical Flow
Guest → Captive Portal → Instagram OAuth
↓
Permission Grant
↓
Access Granted ← IronWifi ← Token Exchange
Splash Page Integration
Add Instagram Button
<div class="social-login">
<a href="{{instagram_auth_url}}" class="btn-instagram">
<img src="/instagram-icon.svg" alt="Instagram">
Continue with Instagram
</a>
</div>
<style>
.btn-instagram {
background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
color: white;
padding: 12px 24px;
border-radius: 4px;
display: flex;
align-items: center;
gap: 8px;
}
</style>
App Review
For Public Use
To use Instagram login publicly:
- Submit app for App Review
- Explain use case
- Provide privacy policy
- Demonstrate data handling
- Wait for approval
Development Mode
During development:
- Limited to app developers and testers
- Add test users in Facebook app settings
- Full functionality for testing
Privacy & Compliance
Data Handling
- Inform users what data is collected
- Privacy policy must be displayed
- Data retention policy required
- Deletion requests must be honored
Meta Platform Terms
Comply with:
- Meta Platform Terms
- Instagram API Terms
- Data Processing requirements
Troubleshooting
OAuth Errors
Invalid Redirect URI:
- Verify URI matches exactly in Facebook app
- Check for trailing slashes
- Ensure HTTPS
Permission Denied:
- User declined permissions
- App not approved for production
- Rate limits exceeded
No Data Received
- Check permissions requested
- Verify app is in live mode
- Review access token validity
- Check API response logs
Best Practices
- Clear messaging - Tell users why you need Instagram
- Minimal permissions - Only request what's needed
- Privacy compliant - Honor data requests
- Fallback option - Offer alternative login methods
- Graceful errors - Handle failures smoothly
Limitations
Instagram API Restrictions
- No email address available
- Limited profile data
- Rate limited API calls
- Requires app review for production
- Subject to frequent API changes
Consider Alternatives
For richer data collection:
- Facebook Login (includes email)
- Google Sign-In
- Email authentication