At the risk of creating a havoc for my email inbox, I'd like to say that I've once already successfully implemented a Facebook login on one location "for real".
The only problem I'm facing now is that this still requires a separate web server that has access to the router, which is a big hurdle for many potential clients. Also, it expects each network owner to have their own Facebook app ID and secret (unless you want to have something like "JoinMyWiFi.com" where once you give the app permission on one network, you give access to everyone using their service; If you have such a common app ID and secret, you could join with my implementation, sure), and that too is another big obstacle.
The algorithm isn't a secret; I've already mentioned it before in other topics - wall garden the web server, on a click of the "Login with Facebook" button, temporary allow Facebook URLs too (using the RouterOS API), redirect to it with a URL given from the Facebook API, and point the callback URL back to the web server. Once logged in, the web server receives another HTTP request, upon which you can create a temporary username and password (based on who exactly is logged in), and redirect back to the router with the newly created username and password supplied in the URL. The user's profile should include a logout script that removes the user upon logout.
I'm working on making the "app" more portable, so that I can use my own web server, accessible to clients via some sort of VPN (to ensure it would work regardless of NAT settings). And maybe have RADIUS somewhere in there too, but I'm not sure about that...
I know this is a big feature request for many, but before anyone presses me for a copy, I'd like to preemptively say "It's not ready yet", and even when it is ready for more "massive" consumption, I'd charge a fee for that, just FYI.
Like I said, the algorithm is no secret (the primary reason this post exists is to let you know the algorithm DEFINETLY works), so feel free to make your own better implementation than my (currently) sloppy one, and either make money for yourself or give it for free.
Last edited by boen_robot
on Thu Feb 04, 2016 6:06 pm, edited 1 time in total.
(1.0.0b6) - My API client in PHP
(Rate my posts? If you want... no pressure...)