Home

Awesome

My Hotspots Chrome OS Extension

My Hotspots is a Chrome OS Extension which makes your life easier:

It actually takes advantage of the networking.config API to authenticate to captive portals.

Get it on the Chrome Web Store at https://chrome.google.com/webstore/detail/kngmdnkaeiaodchlfljkkinpphgfmkfg

<img src="https://raw.githubusercontent.com/beaufortfrancois/my-hotspots-chrome-extension/master/screenshot.png">

How to add a new captive portal in 3 steps

  1. Add a 48px tall image named captive-portal-ssid.png to src/images/portals/
  2. Add a new captive portal config to src/captive-portals.json which follow these guidelines below:
  3. Add the captive portal URL to the optional_permissions key in src/manifest.json

Requires some user fields

"My Captive Portal SSID": {
  "url": "https://my-captive-portal.com",
  "formData": {
    "login": {
    },
    "password": {
      "type": "password" // Will be masked in the UI
    }
  }
}

Requires some hardcoded user fields

"My Captive Portal SSID": {
  "url": "https://my-captive-portal.com",
  "formData": {
    "cgu": {
      "value": "on" // Will POST cgu=on to https://my-captive-portal.com
    }
  }
}

Checks for errors contained in the HTTP response

"My Captive Portal SSID": {
  "url": "https://my-captive-portal.com",
  "error": "ARGH SORRY" // Raises error if this string is found.
}

Gather url parameters contained in the Captive Portal URL

"My Captive Portal SSID": {
  "url": "https://my-captive-portal.com",
  "urlParams": [ "macAddress", "ipAddress", "token" ], // Will be included in formData.
}

Redirect to a final URL contained in HTTP response after authentication

"My Captive Portal SSID": {
  "url": "https://my-captive-portal.com",
  "redirectUrlRegex": "window.location = \"([^\"]*)", // RegEx capture here.
}