Coworks Captive Portal Integration
IronWiFi validates Coworks member WiFi logins in real time by calling the Coworks REST API at each captive portal login attempt. There is no account sync — the captive portal asks Coworks whether the member exists and whether their membership is currently active, and grants or denies WiFi based on the response. Coworks remains the source of truth for members and plans.
How It Works
- A member connects to the WiFi SSID and is redirected to your IronWiFi captive portal.
- The member submits their Coworks email and password on the splash page.
- IronWiFi POSTs those credentials to the Coworks API endpoint you configured on the captive portal's REST API authentication provider, passing your Coworks API token as a Bearer header.
- Coworks validates the credentials and the member's active membership, then returns to allow the session or
2xxto reject it.4xx - IronWiFi grants or denies the WiFi session based on the response.
The request and response contract is described in External Authentication via REST API.
Prerequisites
- An IronWiFi account with a captive portal already created. See Captive Portals.
- A Coworks account with admin access and the ability to issue an API key.
- A walled garden on your captive portal that allows the Coworks API hostname (see Walled Garden below).
Setup
In Coworks
- Log in to your Coworks admin dashboard.
- Go to Settings > Integrations and generate or copy:
- Your API Key (used as the Bearer token).
- Your Space ID, which is required in the Coworks API endpoint URL.
- Store the API key securely — you will paste it into IronWiFi next.
In IronWiFi
- Open the IronWiFi Console and go to Captive Portals.
- Select the captive portal you want members to authenticate against.
- Go to Authentication Providers > Add and choose REST API.
- Configure the provider:
- Endpoint URL: The Coworks endpoint for your space that validates the captive portal credential payload.
- Bearer Token: The Coworks API key from the previous section.
- Save the provider. For field-by-field details, see the REST API provider configuration reference.
- Make sure the REST API provider is enabled on the captive portal's login page.
Walled Garden
Add the Coworks API hostname to the captive portal's walled garden so the provider endpoint is reachable before the user is authenticated:
See Walled Garden for how to edit the list.
Testing
- Connect a test device to the SSID and wait for the captive portal to load.
- Log in with a known-active Coworks member — you should be granted WiFi.
- Try an inactive or suspended member — the captive portal should show an authentication failure.
- In the IronWiFi Console, check the captive portal session log to confirm the request hit the Coworks API and returned the expected or
2xx.4xx
Troubleshooting
- 401/403 from Coworks — the API key is missing, wrong, or lacks permission. Regenerate it in Coworks and re-paste into the REST API provider.
- Request never reaches Coworks — the Coworks hostname is missing from the walled garden. Add it and retest.
- Active members are rejected — confirm the Space ID in the endpoint URL matches the member's space and that the member's plan is active.
- Previously working logins suddenly fail — the Coworks API key may have been rotated. Issue a new one and update the provider.
Related
Was this page helpful?