Giter VIP home page Giter VIP logo

bryanhughes / merakicaptiveportal-firebasedb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dexterlabora/merakicaptiveportal-firebasedb

0.0 0.0 0.0 178 KB

A Meraki Captive Portal demo, which performs all client login logic within the public HTML/JS pages. The login data will be saved into a Google Firebase DB

License: Apache License 2.0

JavaScript 27.60% CSS 14.09% HTML 58.31%

merakicaptiveportal-firebasedb's Introduction

Meraki Captive Portal

w/ Firebase Hosting and Database

Static HTML/JS/CSS Site for a Click-through Splash Page

Overview

Cisco Meraki provides cloud managed WiFi with the ability to host your own "Splash Page", which is a captive portal service for authenticating users to join the network. This concept is called an External Captive Portal (ExCaP).

Meraki provides two splash page modes, click-through and sign-on. This application will use the click-through method.

Sample URL received from Meraki to this page.

You can use this URL to test your application without an access point

http://YourAppName.firebaseapp.com/?base_grant_url=https%3A%2F%2Fn143.network-auth.com%2Fsplash%2Fgrant&user_continue_url=http%3A%2F%2Fspeedof.me%2F&node_id=149624922840090&node_mac=88:15:44:60:1c:1a&gateway_id=149624922840090&client_ip=10.255.60.208&client_mac=f4:5c:89:9b:17:67

Installation

  • Clone this repo and change into the directory
$ git clone https://github.com/dexterlabora/MerakiCaptivePortal-firebaseDB.git
  • Update your Firebase Config settings in ./js/MerakiFirebase.js. This information is found in your Google Firebase Console.
// Initialize Firebase -- UPDATE THIS
var config = {
    apiKey: "YourAPIKey",
    authDomain: "YourAppName.firebaseapp.com",
    databaseURL: "https://YourAppName.firebaseio.com",
    projectId: "YourProjectID",
    storageBucket: "YourAppName.appspot.com",
    messagingSenderId: "YourSenderId"
};
  • Install and configure Google Firebase Hosting

NodeJS must be installed for the npm command to work

$ npm install -g firebase-tools
$ firebase init    # Generate a firebase.json (REQUIRED)
$ firebase serve   # Start development server
$ firebase deploy  # Push changes to Firebase Hosting
  • Configure the Meraki wireless SSID with a Click-Through splash page authentication
    • Meraki Dashboard --> Configure --> Splash Page: Click-through
  • Add the domain address of the webserver to the "Walled Garden"
    • Meraki Dashboard --> Configure --> Access Control --> SSID:yourSSID --> Walled Garden.
    • Note: You will need to use the IP address instead of the domain name or contact Meraki Support to enable Walled Garden Domain Names
  • Point the Meraki Splash page "Customer URL" to the HTML file. https://yourserver/
    • Meraki Dashboard --> Configure --> Splash Page --> Custom URL: https://yourserver.com/index.html

Sample URL paramater string

https://yourserver/splash.html?base_grant_url=https%3A%2F%2Fn143.network-auth.com%2Fsplash%2Fgrant&user_continue_url=http%3A%2F%2Fask.com%2F&node_id=149624921787028&node_mac=88:15:44:50:0a:94&gateway_id=149624921787028&client_ip=10.110.154.195&client_mac=60:e3:ac:f7:48:08:22

Screenshot

alt screenshot

Additional Resources

http://developers.meraki.com/tagged/Splash-Pages

Written by

Cory Guynn 2017 www.InternetOfLEGO.com

LICENSE

Apache 2.0 (see LICENSE and NOTICE).

merakicaptiveportal-firebasedb's People

Contributors

dexterlabora avatar eckelcu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.