Skip to main contentSkip to search
Skip to main content

Nexudus Captive Portal Integration

IronWiFi validates Nexudus member WiFi logins in real time by calling the Nexudus REST API at each captive portal login attempt. There is no account sync — the captive portal asks Nexudus whether the member exists and whether their membership is currently active, and grants or denies WiFi based on the response. Nexudus remains the source of truth for members and plans.

How It Works

  1. A member connects to the WiFi SSID and is redirected to your IronWiFi captive portal.
  2. The member submits their Nexudus email and password on the splash page.
  3. IronWiFi POSTs those credentials to the Nexudus API endpoint you configured on the captive portal's REST API authentication provider, passing your Nexudus API token as a Bearer header.
  4. Nexudus validates the credentials and the member's active membership, then returns
    2xx
    to allow the session or
    4xx
    to reject it.
  5. 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 Nexudus account with admin access and the ability to issue an API token.
  • A walled garden on your captive portal that allows the Nexudus API hostname (see Walled Garden below).

Setup

In Nexudus

  1. Log in to your Nexudus admin panel at
    https://yourspace.nexudus.com
    .
  2. Go to Settings > API and generate or copy:
    • Your API Key (used as the Bearer token).
    • Your space subdomain, which forms the base URL for the Nexudus API.
  3. Save the API token securely — you will paste it into IronWiFi in the next section.

In IronWiFi

  1. Open the IronWiFi Console and go to Captive Portals.
  2. Select the captive portal you want members to authenticate against.
  3. Go to Authentication Providers > Add and choose REST API.
  4. Configure the provider:
    • Endpoint URL: The Nexudus endpoint that accepts the captive portal credential payload.
    • Bearer Token: The Nexudus API key from the previous step.
  5. Save the provider. For field-by-field details, see the REST API provider configuration reference.
  6. Make sure the REST API provider is enabled on the captive portal's login page.

Walled Garden

Add the Nexudus 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

  1. Connect a test device to the SSID and wait for the captive portal to load.
  2. Log in with a known-active Nexudus member account — you should be granted WiFi.
  3. Try a cancelled or expired member — the captive portal should show an authentication failure.
  4. In the IronWiFi Console, check the captive portal session log to confirm the request hit the Nexudus API and returned the expected
    2xx
    or
    4xx
    .

Troubleshooting

  • 401/403 from Nexudus — the API token is missing, wrong, or lacks permission. Regenerate the token in Nexudus and re-paste it into the REST API provider.
  • Request never reaches Nexudus — the Nexudus hostname is missing from the walled garden. Add it and retest.
  • Members with paid plans are rejected — check that the Nexudus member is marked active and that their plan is currently in effect; IronWiFi only reflects what Nexudus returns.
  • Previously working logins suddenly fail — the Nexudus API token may have been rotated or expired. Issue a new one and update the provider.

Was this page helpful?